我有两个表:一个和两个。我在表一中有一个主键 (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 one
时更新table two
的值。而且我无法从table one
中删除行,也无法将行插入到table two
.
/插入table one
时如何更新table two
的所有列。 或显式插入到table two
好吧,对于 delete
的情况,当您从表 1 中删除该行时,与该 id 对应的所有行都将从表 2 中删除。
在update
的情况下,如果您希望在表 2 中更改名字和姓氏时更新它们,那么您必须为此编写更新trigger
。