事务约束检查mysql

时间:2011-12-06 11:00:31

标签: mysql constraints

我想做那样的事情:

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”上失败。

感谢。

0 个答案:

没有答案