2011-09-01 74 views
0

我有两个表Token和distinctToken。以下是两张表的描述。如何更新另一个表中的列,如果两个表都有一个共同的文本字段

令牌 (ID INT,文本VARCHAR(100),utokenid INT)

distinctToken (ID INT,文本VARCHAR(100))

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

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

回答

2
UPDATE Token t, distinctToken dt SET t.utokenid = dt.id WHERE t.text = dt.text; 

我错过了什么吗?

+0

你是100%正确和没有任何东西,我失去了耐心,因为我每次运行相同的查询10分钟后终止,mysql花了31分钟来执行更新。谢谢 –

+0

您可以通过首先向两列添加索引来帮助您。如果需要,您可以在完成后删除索引。 – Zds

相关问题