UPDATE    A
SET A.c2 =B.c3
from A inner join B on A.c1=B.c1

以下内容出自《高性能MySQL》第三版,精晓事情的ACID及八种隔断级有利于大家更加好的通晓事情运作。

简介

多表from子句前面

上面举八个银行使用是分解职业须要性的三个经文例子。要是五个银行的数据库有两张表:支票表(checking)和积储表(savings)。未来要从客户Jane的支票账户转移200港元到他的储蓄账户,那么至少必要多少个步骤:

将查询语句询问的结果集作为数据插入到数量表中。

1、检查支票账户的余额超越可能等于200美金。

 

2、从支票账户余额中减去200日元。

一、通过INSERT
SELECT语句格局向表中添加多少

3、在积贮帐户余额中扩充200港币。

比如,成立一张新表AddressList来存款和储蓄班级学生的通信录音信,然后那么些音信恰好存在学生表中,则足以从学生表中提取相关的多寡插入建好的AddressList表中。

上述四个步骤的操作必得打包在一个事务中,任何三个步骤败北,则必需回滚全部的步骤。

T-SQL语句如下:

 

insert into AddressList(姓名,地址,邮箱)
select name,address,email 
from Students

能够用START
TRANSACTION语句开首贰个事情,然后如故采纳COMMIT提交将修改的多少悠久保存,要么使用ROLLBACK撤废全数的修改。事务SQL的范本如下:

 语法快记:该语句和正规的插入语句语法很相像,为了越来越好的记住语法,就能够掌握此插入语句把values替换到了询问语句。

  1. start transaction;

  2. select balance from checking where customer_id = 10233276;

  3. update checking set balance = balance – 200.00 where customer_id =
    10233276;

  4. update savings set balance = balance + 200.00 where customer_id =
    10233276;

  5. commit;

选拔该语句插入数据的注意事项:

 

  1.查询语句部分当中列的个数、顺序、数据类型必得与INSERT语句的钦定列要保持一致,列名能够分裂样。

ACID表示原子性(atomicity)、一致性(consistency)、隔绝性(isolation)和长久性(durability)。二个很好的事务管理系统,必需怀有这么些标准个性:

  2.INSERT语句插入数据的表必得是先行制造好的。

 

 

原子性(atomicity)

INSERT
SELECT语句情势中的查询部分既可以够是单表,能够支撑不一致格局的询问语句,只要有限辅协助调查询结果集的列和要插入数据的列是相配的就可以。

发表评论

电子邮件地址不会被公开。 必填项已用*标注