有没有办法在mySQL中的两个不同的表中链接两列?

时间:2015-07-29 13:44:41

标签: mysql database

如果之前已经问过这个问题我很抱歉,但是我并不太了解这个术语,因此找不到任何关于这个主题的内容。

说我有两张桌子:

*Table 1*

[  id  |  username  |  first_name  | last_name  ]

和第二张表

*Table 2*

[  id  |  username  |  age  ]

有没有办法链接这两个表中的username列,这样如果我在一个表中更改用户名,另一个表会识别匹配并在用户名列中更改用户名?

示例:所以在表1和表2中说是用户名myUserName(行的其余部分并不重要)。然后,表1中的myUserName变为theUserName。有没有办法让表2看到这一点,并将myUserName的副本更改为theUserName

1 个答案:

答案 0 :(得分:1)

嗯,首先,您的设计主题不如问题评论中所述的最佳。但是,假设这是您希望能够更新值的更多示例,则可以使用foreign keys

alter table2 add foreign key (username) references table1 (username) on update cascade;

只要table1的值更新,这将更新table2。为了使这个例子起作用,我相信table1.username必须是唯一的。如果在table1中有两个具有相同用户名的记录并对其进行编辑,则table2可能会看到它仍然具有要引用的有效密钥而不会更改。 (虽然外键通常不需要唯一的索引,只是你想要使用它们的方式。)