如何将FK添加到existingTable?

时间:2017-05-23 16:47:39

标签: mysql foreign-keys

如何将fk添加到表格消息的字段img中,我是否从表格用户自动获取图像名称?

enter image description here

3 个答案:

答案 0 :(得分:0)

<强>更新 如果我的理解是正确的。您将UserTable构建为Above。

单个用户拥有一张SINGLE图片..如果用户更改了他们的图片,您希望将其绑定到每条消息。

基于这些假设建立MessageTable应该只有这3列假设这是你存储&#34;消息的地方&#34;

id_mesg,fk_userId,MessageText。

然后,以下Statement将在每次运行时为您提供更新的图像...

SELECT  mt.id_msg, mt.MessageText, ut.img, ut.uname
FROM UessageTable mt
JOIN UserTable ut
    On ut.id_user= mt.fk_userId

从消息表中完全删除img列和uname列。不需要它们。

答案 1 :(得分:0)

我不知道这是否适用于mysql,而是sql中的一个想法

 ALTER TABLE message-table ADD CONSTRAINT fk-message-img FOREIGN KEY 
 (img)
     REFERENCES user_table(id_user);

答案 2 :(得分:0)

您可以在此处使用Alter Table语句。

ALTER TABLE消息表ADD CONSTRAINT user_img FOREIGN KEY(img)REFERENCES user-table(img)ON DELETE ON UPDATE;

对于您的用例,您可以使用级联选项,让更改从用户表流向消息表

此外,如果用户到图像映射是1:1,那么您不应该在消息表中复制img。相反,只需保留user-table的uName并在读取时加入该列。