关于<事务处理>——请各位文曲星老爷们帮忙看看是什么问题呢?
sql吧
全部回复
仅看楼主
level 1
小弟使用的是mysqlworkbench。想做一个测试,同时往两张表中插入数据,orders表和customers表,语句如下:
start transaction;
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20004, '2005-09-01', 10001);
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES(10001, 'Coyote Inc.', '200 Maple Lane', 'Detroit', 'MI', '44444', 'USA', 'Y Lee', '[email protected]');
commit;
我在往customers表中插入数据时,故意编写的是一个重复的主键,希望它来报错。可是实际执行的结果是,orders表中的数据插入了,customers表中数据插入失败。但是按照我对“事务”一致性的理解,在出现报错以后,orders表中的数据也不应该被插入成功啊。这究竟是为什么呢?而且我试过使用SET AUTOCOMMIT=1;和SET AUTOCOMMIT=0;无论是否关闭自动提交,都是这种情况....试了好久,往各位谪仙人帮忙指点指点,小弟不甚感谢,祝大家周末愉快~
2019年12月07日 02点12分 1
1