mysql创建标示列_mysql标识列和事务

本文介绍了MySQL中的标识列(自增列)的概念、特点和创建方法,并通过实例展示了如何设置步长和初始值。接着,详细解释了事务控制语言(TCL),包括事务的特性、隔离级别以及在MySQL中如何进行事务操作,如开启、提交和回滚事务,以及savepoint的使用。
摘要由CSDN通过智能技术生成

1 #标识列2 /*

3 又称为自增长列4 含义:可以不用手动的插入值,系统提供默认的序列值5

6

7 特点:8 1、标识列必须和主键搭配吗?不一定,但要求是一个key9 2、一个表可以有几个标识列?至多一个!10 3、标识列的类型只能是数值型11 4、标识列可以通过 SET auto_increment_increment=3;设置步长12 可以通过 手动插入值,设置起始值13

14

15 */

16

17 #一、创建表时设置标识列18

19

20 DROP TABLE IF EXISTStab_identity;21 CREATE TABLEtab_identity(22 id INT,23 NAME FLOAT UNIQUEAUTO_INCREMENT,24 seat INT

25

26

27 );28 TRUNCATE TABLEtab_identity;29

30

31 INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');32 INSERT INTO tab_identity(NAME) VALUES('lucy');33 SELECT * FROMtab_identity;34

35

36 SHOW VARIABLES LIKE '%auto_increment%';37

38

39 SET auto_increment_increment=3;40

41

42

43 #TCL44 /*

45 Transaction Control Language 事务控制语言46

47 事务:48 一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。49

50 案例 转账51

52 张三丰 100053 郭襄 100054

55 update 表 set 张三丰的余额=500 where name='张三丰'56 意外57 update 表 set 郭襄的余额=1500 where name='郭襄'58

59

60 事务的特性:61 ACID62 原子性:一个事务不可再分割,要么都执行要么都不执行63 一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态64 隔离性:一个事务的执行不受其他事务的干扰65 持久性:一个事务一旦提交,则会永久的改变数据库的数据.66

67

68

69 事务的创建70 隐式事务:事务没有明显的开启和结束的标记71 比如insert、update、delete语句72

73 delete from 表 where id =1;74

75 显式事务:事务具有明显的开启和结束的标记76 前提:必须先设置自动提交功能为禁用77

78 set autocommit=0;79

80 步骤1:开启事务81 set autocommit=0;82 start transaction;可选的83 步骤2:编写事务中的sql语句(select insert update delete)84 语句1;85 语句2;86 ...87

88 步骤3:结束事务89 commit;提交事务90 rollback;回滚事务91

92 savepoint 节点名;设置保存点93

94

95

96 事务的隔离级别:97 脏读 不可重复读 幻读98 read uncommitted:√ √ √99 read committed: × √ √100 repeatable read: × × √101 serializable × × ×102

103

104 mysql中默认 第三个隔离级别 repeatable read105 oracle中默认第二个隔离级别 read committed106 查看隔离级别107 select @@tx_isolation;108 设置隔离级别109 set session|global transaction isolation level 隔离级别;110

111

112

113

114 开启事务的语句;115 update 表 set 张三丰的余额=500 where name='张三丰'116

117 update 表 set 郭襄的余额=1500 where name='郭襄'118 结束事务的语句;119

120

121

122 */

123

124 SHOW VARIABLES LIKE 'autocommit';125 SHOW ENGINES;126

127 #1.演示事务的使用步骤128

129 #开启事务130 SET autocommit=0;131 START TRANSACTION;132 #编写一组事务的语句133 UPDATE account SET balance = 1000 WHERE username='张无忌';134 UPDATE account SET balance = 1000 WHERE username='赵敏';135

136 #结束事务137 ROLLBACK;138 #commit;139

140 SELECT * FROMaccount;141

142

143 #2.演示事务对于delete和truncate的处理的区别144

145 SET autocommit=0;146 START TRANSACTION;147

148 DELETE FROMaccount;149 ROLLBACK;150

151

152

153 #3.演示savepoint 的使用154 SET autocommit=0;155 START TRANSACTION;156 DELETE FROM account WHERE id=25;157 SAVEPOINT a;#设置保存点158 DELETE FROM account WHERE id=28;159 ROLLBACK TOa;#回滚到保存点160

161

162 SELECT * FROM account;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值