我想做那样的事情:
1)开始交易 2)运行query1忽略约束 3)运行query2忽略约束 4)检查约束: 4a)如果他们没事 - 承诺 4b)也回滚
示例:
DROP TABLE IF EXISTS `atable`;
CREATE TABLE `atable` (
`id` int AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `btable`;
CREATE TABLE `btable` (
`id` int AUTO_INCREMENT,
`a_id` int,
PRIMARY KEY (`id`),
CONSTRAINT `b_fk` FOREIGN KEY (`a_id`) REFERENCES `atable` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
这个脚本的第一次运行是传递....第二次不是因为btable引用了atable,所以它在“drop table atable”上失败。
感谢。