【问题标题】:How to update column in one table from another if both tables have a text field in common如果两个表具有共同的文本字段,如何从另一个表中更新一个表中的列
【发布时间】:2011-09-01 09:37:15
【问题描述】:

我有两个表 Token 和 distinctToken。以下是这两个表的说明。

令牌 (id int, text varchar(100), utokenid int)

distinctToken (id int, text varchar(100))

两个表中的文本字段数据相同,但有一个例外,即Token表中的文本字段包含重复条目。

我想更新 Token 表,使其 utokenid 成为外键。更具体地说,我想设置 Token.utokenid = distinctToken.id 的值,其中 Token.text 与 distinctToken.text 相同。是否可以使用更新或者我应该编写一个存储过程来这样做。

【问题讨论】:

    标签: mysql


    【解决方案1】:
    UPDATE Token t, distinctToken dt SET t.utokenid = dt.id WHERE t.text = dt.text;
    

    我错过了什么吗?

    【讨论】:

    • 你是 100% 正确的,没有遗漏任何东西,我失去了耐心,因为每次运行相同的查询时我在 10 分钟后终止,mysql 花了 31 分钟来执行更新。谢谢
    • 您可以通过首先向两列添加索引来帮助实现这一点。如果需要,您可以在完成后删除索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2011-02-15
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多