错误1062在表之间复制数据时重复输入

时间:2013-12-04 22:24:45

标签: mysql mysql-error-1062

我正在尝试将数据从一个表复制到另一个表.T1,T2是两个表都正确设置都具有UQ的PK。特别是我想将值R放入GZHTable3的Combined_Data表中。 R是非唯一的,当T1.Aid = T2.Gid时必须是,所以我有:

INSERT INTO Combined_Data (R)    
SELECT T2.R    
FROM GZHTable3 as T2   
JOIN Combined_Data as T1 ON T1.Aid = T2.Gid;

Aid和Gid是他们各自桌子的UQ和PK。据我所知,它是反对的,因为Aid和Gid都是PK。

我不是试图仅将它们复制到T2.R的值,但它必须在Aid,Gid上的两个表中同步。为什么反对,解决方案是什么? (某些数据在表之间复制,但R不是)。

由于


澄清:

表1(T1)

Aid     R       Data fields .....


UQid1   0      ........ data .........
UQid2   0      ........ data .........

表2(T2)

Gid     R        Different data fields....


UQid6   R6       ....... data ....
UQid12  R12      ....... data ....
UQid23  R23      ....... data ....
UQid1   R1       ....... data ....

T1,T2的订购方式不一样。对于T1中的每个Aid,我必须在T2中找到Gid的相应值(例如UQid1),并将T2中该行中R的(严格)非零值复制到T1中的相应行。

T2的所有元素都是非空的,目前用于数字;和T2远大于T1

1 个答案:

答案 0 :(得分:0)

您的问题很混乱,在您尝试插入的初始帖子中,但在编辑中您说:“对于T1中的每个Aid,我必须在T2中找到相应的Gid值(例如UQid1)并复制(严格地说)T2中该行中的R的非零值进入T1中的相应行。“

如果确实如此,你应该能够做到这样的事情:

UPDATE table_1 AS t1 SET t1.value = (SELECT t2.value FROM table_2 AS t2 WHERE t2.UQid1 = t1.id);