mysql标识列和事务自律即自由

database

  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

回到顶部