删除级联上更新级联的外键约束

时间:2013-12-30 14:38:11

标签: mysql sql

我有两张桌子:一张和两张。我在表1中有一个主键(id)。

表一:

CREATE TABLE `one` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`first_name` varchar(10) NOT NULL,
`last_name` varchar(10) NOT NULL,
`salary` int(100) NOT NULL,
`login_date_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1

id    first_name    last_name    salary  login_date_time 

表二

CREATE TABLE two AS (SELECT id,salary ,CONCAT(first_name, ',', last_name) AS Name from one)

现在将外键添加到id为:

ALTER TABLE two
ADD CONSTRAINT `0_38775` FOREIGN KEY (id)
REFERENCES one(id) ON DELETE CASCADE ON UPDATE CASCADE

表格two与表格one中的值相同:

id    salary       name  

现在,为了保持参照完整性,如何更新table two时更新table one的值。此外,我无法从table one删除行,也无法将行插入table two

如何更新/插入table two时更新table one的所有列。或明确插入table two

1 个答案:

答案 0 :(得分:2)

嗯,对于delete的情况,当您从表1中删除行时,与该ID相对应的所有行都将从表2中删除。

如果是update,如果您希望在表1中更改表1中的名字和姓氏,那么您必须为此编写更新trigger。 / p>