如果之前已经问过这个问题我很抱歉,但是我并不太了解这个术语,因此找不到任何关于这个主题的内容。
说我有两张桌子:
*Table 1*
[ id | username | first_name | last_name ]
和第二张表
*Table 2*
[ id | username | age ]
有没有办法链接这两个表中的username
列,这样如果我在一个表中更改用户名,另一个表会识别匹配并在用户名列中更改用户名?
示例:所以在表1和表2中说是用户名myUserName
(行的其余部分并不重要)。然后,表1中的myUserName
变为theUserName
。有没有办法让表2看到这一点,并将myUserName
的副本更改为theUserName
?
答案 0 :(得分:1)
嗯,首先,您的设计主题不如问题评论中所述的最佳。但是,假设这是您希望能够更新值的更多示例,则可以使用foreign keys。
alter table2 add foreign key (username) references table1 (username) on update cascade;
只要table1的值更新,这将更新table2。为了使这个例子起作用,我相信table1.username必须是唯一的。如果在table1中有两个具有相同用户名的记录并对其进行编辑,则table2可能会看到它仍然具有要引用的有效密钥而不会更改。 (虽然外键通常不需要唯一的索引,只是你想要使用它们的方式。)