[英]Error in copying data from table A to table B
我遇到錯誤
ERROR 1062 (23000): Duplicate entry '42322-xyz@yahoo.co.in' for key 'PRIMARY'
同時將數據從一個表復制到另一個表。 是否可以繞過表B中的表A中的行,我正在嘗試使用
INSERT INTO tableB SELECT * FROM tableA as A join v2_opens as B on A.id!=B.id and A.emailid != B.emailid WHERE A.date='2015-01-27';
但是對於上面的查詢,我得到一個錯誤:
ERROR 1136 (21S01): Column count doesn't match value count at row 1
請您提出建議並幫助我如何克服這些問題。 我擔心的是將數據從TableA復制到TableB,如果有任何重復的條目(帶有主鍵),並且必須繞過它。
對於繞行,我更喜歡on duplicate key update
。 這恰好防止了該錯誤。
進行插入時,通常應包括要插入的列:
INSERT INTO tableB(col1, . . .)
SELECT col1, . . .
FROM tableA as A join
v2_opens as B on A.id <> B.id and A.emailid <> B.emailid
WHERE A.date='2015-01-27'
ON DUPLICATE KEY UPDATE col1 = values(col1);
但是,如果此查詢確實要您執行,我會感到驚訝。 這可能就足夠了:
INSERT INTO tableB(col1, . . .)
SELECT col1, . . .
FROM tableA a
WHERE A.date = '2015-01-27'
ON DUPLICATE KEY UPDATE col1 = values(col1);
也許這樣:
INSERT INTO tableB(col1, . . .)
SELECT col1, . . .
FROM tableA as A LEFT JOIN
v2_opens as B
ON A.id = B.id and A.emailid = B.emailid
WHERE A.date = '2015-01-27' AND B.id IS NULL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.