gpt4 book ai didi

MySQL:更改外键列 - 但保持数据引用完整

转载 作者:行者123 更新时间:2023-11-29 23:27:10 24 4
gpt4 key购买 nike

我在更改外键引用和保持数据引用完整方面遇到问题。

我有一个包含评论的表,这些评论是由用户创建的,用户存储在一个单独的表中,并通过外键从评论表中引用。所以我的数据库中已经有很多数据,我不能直接丢弃它们。

起初,我为每个用户创建了自己的登录系统,每个用户都有一个唯一的 ID(他们的用户名 - 我知道,过去的我是个 SCSS ,没有使用整数作为 ID),这是引用的 ID,现在我已对其进行更改,以便所有用户都需要 Facebook 才能使用该页面。这就是我的问题所在 - 我希望将评论外键更改为 Facebook ID 而不是用户名,但我不想失去评论和用户之间的数据关系。

我有以下表格及其列的设置:

CommentsTable: [commentID] [comment] [UsersTable_userName]

UsersTable: [userID] [(varchar) userName] [(int) facebookID]

我想要的是这个:

CommentsTable: [commentID] [comment] [UsersTable_facebookID]

UsersTable: [userID] [(varchar) userName] [(int) facebookID]

我尝试在 commentsTable 中创建一个额外的外键 - 但这并没有保留关系。

我也无法直接更改 commentsTable 中的指针以指向 FacebookID,因为一个是 varchar,另一个是 int。

哪位有这方面经验的可以帮忙或者指点一下吗?

最佳答案

我想出了一个解决方法:使用http://dev.mysql.com/doc/refman/5.0/en/update.html

UPDATE `Table A`,`Table B`
SET `Table A`.`text`=concat_ws('',`Table A`.`text`,`Table B`.`B-num`," from ",`Table B`.`date`,'/')
WHERE `Table A`.`A-num` = `Table B`.`A-num`

因此,我在评论表中为 Facebook ID 创建了一列,并使用了上面显示的 UPDATE 查询(当然要输入正确的名称)。

之后,我删除了 commentsTable 中旧的 [UsersTable_userName] 列,并使我的查询改为指向 FacebookID 列。

关于MySQL:更改外键列 - 但保持数据引用完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com