mysql标识列和事务自律即自由
1#标识列 2/*3又称为自增长列
4含义:可以不用手动的插入值,系统提供默认的序列值
5
6
7特点:
81、标识列必须和主键搭配吗?不一定,但要求是一个key
92、一个表可以有几个标识列?至多一个!
103、标识列的类型只能是数值型
114、标识列可以通过 SET auto_increment_increment=3;设置步长
12可以通过 手动插入值,设置起始值
13
14
15*/
16
17#一、创建表时设置标识列
18
19
20DROPTABLEIFEXISTS tab_identity;
21CREATETABLE tab_identity(
22 id INT ,
23 NAME FLOATUNIQUE AUTO_INCREMENT,
24 seat INT
25
26
27);
28TRUNCATETABLE tab_identity;
29
30
31INSERTINTO tab_identity(id,NAME) VALUES(NULL,"john");
32INSERTINTO tab_identity(NAME) VALUES("lucy");
33SELECT*FROM tab_identity;
34
35
36 SHOW VARIABLES LIKE"%auto_increment%";
37
38
39SET auto_increment_increment=3;
40
41
42
43#TCL
44/*
45Transaction Control Language 事务控制语言
46
47事务:
48一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。
49
50案例 转账
51
52张三丰 1000
53郭襄 1000
54
55update 表 set 张三丰的余额=500 where name="张三丰"
56意外
57update 表 set 郭襄的余额=1500 where name="郭襄"
58
59
60事务的特性:
61ACID
62原子性:一个事务不可再分割,要么都执行要么都不执行
63一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态
64隔离性:一个事务的执行不受其他事务的干扰
65持久性:一个事务一旦提交,则会永久的改变数据库的数据.
66
67
68
69事务的创建
70隐式事务:事务没有明显的开启和结束的标记
71比如insert、update、delete语句
72
73delete from 表 where id =1;
74
75显式事务:事务具有明显的开启和结束的标记
76前提:必须先设置自动提交功能为禁用
77
78set autocommit=0;
79
80步骤1:开启事务
81set autocommit=0;
82start transaction;可选的
83步骤2:编写事务中的sql语句(select insert update delete)
84语句1;
85语句2;
86...
87
88步骤3:结束事务
89commit;提交事务
90rollback;回滚事务
91
92savepoint 节点名;设置保存点
93
94
95
96事务的隔离级别:
97 脏读 不可重复读 幻读
98read uncommitted:√ √ √
99read committed: × √ √
100repeatable read: × × √
101serializable × × ×
102
103
104mysql中默认 第三个隔离级别 repeatable read
105oracle中默认第二个隔离级别 read committed
106查看隔离级别
107select @@tx_isolation;
108设置隔离级别
109set session|global transaction isolation level 隔离级别;
110
111
112
113
114开启事务的语句;
115update 表 set 张三丰的余额=500 where name="张三丰"
116
117update 表 set 郭襄的余额=1500 where name="郭襄"
118结束事务的语句;
119
120
121
122*/
123
124 SHOW VARIABLES LIKE"autocommit";
125SHOW ENGINES;
126
127 #1.演示事务的使用步骤
128
129#开启事务
130SET autocommit=0;
131 START TRANSACTION;
132#编写一组事务的语句
133UPDATE account SET balance =1000WHERE username="张无忌";
134UPDATE account SET balance =1000WHERE username="赵敏";
135
136#结束事务
137ROLLBACK;
138 #commit;
139
140SELECT*FROM account;
141
142
143 #2.演示事务对于delete和truncate的处理的区别
144
145SET autocommit=0;
146 START TRANSACTION;
147
148DELETEFROM account;
149ROLLBACK;
150
151
152
153 #3.演示savepoint 的使用
154SET autocommit=0;
155 START TRANSACTION;
156DELETEFROM account WHERE id=25;
157SAVEPOINT a;#设置保存点
158DELETEFROM account WHERE id=28;
159ROLLBACKTO a;#回滚到保存点
160
161
162SELECT*FROM account;
以上是 mysql标识列和事务自律即自由 的全部内容, 来源链接: utcz.com/z/534580.html