mysql标识列和事务
1 #标识列
2 /*
3 又称为自增长列
4 含义:可以不用手动的插入值,系统提供默认的序列值
5
6
7 特点:
8 1、标识列必须和主键搭配吗?不一定,但要求是一个key
9 2、一个表可以有几个标识列?至多一个!
10 3、标识列的类型只能是数值型
11 4、标识列可以通过 SET auto_increment_increment=3;设置步长
12 可以通过 手动插入值,设置起始值
13
14
15 */
16
17 #一、创建表时设置标识列
18
19
20 DROP TABLE IF EXISTS tab_identity;
21 CREATE TABLE tab_identity(
22 id INT ,
23 NAME FLOAT UNIQUE AUTO_INCREMENT,
24 seat INT
25
26
27 );
28 TRUNCATE TABLE tab_identity;
29
30
31 INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');
32 INSERT INTO tab_identity(NAME) VALUES('lucy');
33 SELECT * FROM tab_identity;
34
35
36 SHOW VARIABLES LIKE '%auto_increment%';
37
38
39 SET auto_increment_increment=3;
40
41
42
43 #TCL
44 /*
45 Transaction Control Language 事务控制语言
46
47 事务:
48 一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。
49
50 案例 转账
51
52 张三丰 1000
53 郭襄 1000
54
55 update 表 set 张三丰的余额=500 where name='张三丰'
56 意外
57 update 表 set 郭襄的余额=1500 where name='郭襄'
58
59
60 事务的特性:
61 ACID
62 原子性:一个事务不可再分割,要么都执行要么都不执行
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 read
105 oracle中默认第二个隔离级别 read committed
106 查看隔离级别
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 * FROM account;
141
142
143 #2.演示事务对于delete和truncate的处理的区别
144
145 SET autocommit=0;
146 START TRANSACTION;
147
148 DELETE FROM account;
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 TO a;#回滚到保存点
160
161
162 SELECT * FROM account;
mysql标识列和事务的更多相关文章
- mysql - 标识列
#标识列 /* 又称为自增长列 含义:可以不用手动插入值,系统提供默认的序列值 特点: 1.表示列必须和主键搭配吗?不一定,但是要求是一个key 2.一个表中只能有一个标识列! 3.标识列的类型有限制 ...
- MySQL标识列(自增长列)
#标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...
- (七)MySQL常见的数据类型、约束和标识列
一.MySQL常见数据类型 1.数值型: ①整型:tinyint.smllint.mediumint.int/integer.bigint 图源:尚硅谷李玉婷 案例1:关键表格teacher,分别添加 ...
- MySQL 避免使用字符串类型作为标识列
避免使用字符串类型作为标识列: 消耗空间. 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢). 对于 MD5().UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 ins ...
- MySQL数据库引擎、事务隔离级别、锁
MySQL数据库引擎.事务隔离级别.锁 数据库引擎InnoDB和MyISAM有什么区别 大体区别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能 ...
- MySQL InnoDB存储引擎事务的ACID特性
1.前言 相信工作了一段时间的同学肯定都用过事务,也都听说过事务的4大特性ACID.ACID表示原子性.一致性.隔离性和持久性.一个很好的事务处理系统,必须具备这些标准特性: 原子性(Atomicit ...
- SQL Server解惑——标识列的限制和跳号现象
1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。
在创建事务复制时,很多时候不一定使用快照进行初始化,而是使用备份还原初始化.当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDEN ...
- 【原创】互联网项目中mysql应该选什么事务隔离级别
摘要 企业千万家,靠谱没几家. 社招选错家,亲人两行泪. 祝大家金三银四跳槽顺利! 引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:"讲讲mysql有几个事务隔离级别?& ...
- 关于SQL Server数据库中的标识列
一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列. 该种列具有以下三种特点: 1.列的数据类型为不带小数的数值类型 2.在进行插入(Insert)操作时,该列的值 ...
随机推荐
- 加快ios的出包速度
在导出ipa时,通过这几种方法,可以更快地导出ipa来进行测试 不勾选bitcode 在导出ipa时,不勾选bitcode,这样会加快出包的速度,但导出来的ipa会大一些,关于bitcode可查看:& ...
- GPT大语言模型引爆强化学习与语言生成模型的热潮、带你了解RLHF。
GPT大语言模型引爆强化学习与语言生成模型的热潮.带你了解RLHF. 随着 ChatGPT 的爆火,强化学习(Reinforcement Learning)和语言生成模型(Language Model ...
- python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}
相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...
- LeetCode刷题日记 2020/8/28
题目描述: 最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 ...
- Java并发(十四)----悲观互斥与乐观重试
1. 悲观互斥 互斥实际是悲观锁的思想 例如,有下面取款的需求 interface Account { // 获取余额 Integer getBalance(); // 取款 ...
- NC17315 背包
题目链接 题目 题目描述 Applese有 \(1\) 个容量为 \(v\) 的背包,有 \(n\) 个物品,每一个物品有一个价值 \(a_i\) ,以及一个大小 \(b_i\) 然后他对此提出了自己 ...
- Spring Boot 加载外部配置文件
Spring Boot 允许你从外部加载配置,这样的话,就可以在不同的环境中使用相同的代码.支持的外部配置源包括:Java属性文件.YAML文件.环境变量.命令行参数. 用@Value注解可以将属性值 ...
- 走出人生的舒适区,告别 CRUD
舒适区(Comfort zone),指的是一个人所处的一种环境的状态,和习惯的行动,人会在这种安乐窝的状态中感到舒适并且缺乏危机感. 工作中的舒适区 很多人工作也每天很累很辛苦,程序员每天都在加班加 ...
- AIR32F103(二) Linux环境和LibOpenCM3项目模板
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- 【Unity3D】灯光组件Light
1 灯光简介 在 Hierarchy 窗口右键,选择 Light,再选择具体的灯光类型,在 Inspector 窗口查看灯光组件如下: Type:灯光类型,主要有:Directional(平行光) ...