2020年7月15日星期三

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 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 * 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标识列和事务打折网inkfroglanding跨境电商新手必看!2019跨境电商平台概况!为什么你赚不到钱?看看别人家的亚马逊运营!中美磋商即将重启,结果会怎样?组团去重庆三峡组团去重庆三峡组团去重庆三峡

没有评论:

发表评论