簡體   English   中英

將數據從表A復制到表B時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM