我試圖找出如何從同一個(gè)表中複製行記錄(僅當(dāng)該行不存在時(shí)),但我找到的解決方案只是其中的一部分。例如,「複製記錄」或「如果不存在則插入」。所以我試著合併這些答案來(lái)製作我的答案,但是......我想我只是做了一些令人厭惡的程式碼。
讓我們看看這個(gè)
INSERT INTO LCL SELECT * FROM LCL WHERE (UID = 0 AND NAME = 'S_TYPE') WHERE NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);
有一筆預(yù)設(shè)格式記錄,UID = 0
。如果沒(méi)有NAME = S_TYPE
的記錄,則複製NAME = S_TYPE AND UID = 0
的記錄,並將UID
改為11。該記錄應(yīng)複製所有列的資料。所以我嘗試使用 SELECT * 但不確定是否正確。
我確定我把兩個(gè) WHERE
s 搞砸了...
如果您已經(jīng)有 WHERE
那麼後續(xù)應(yīng)該是 AND
。我不認(rèn)為你真的需要第一個(gè) WHERE
上的括號(hào):
INSERT INTO LCL SELECT * FROM LCL WHERE UID = 0 AND NAME = 'S_TYPE' AND NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);