我有两张桌子:一张和两张。我在表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
答案 0 :(得分:2)
嗯,对于delete
的情况,当您从表1中删除行时,与该ID相对应的所有行都将从表2中删除。
如果是update
,如果您希望在表1中更改表1中的名字和姓氏,那么您必须为此编写更新trigger
。 / p>