我试图找出如何从同一个表中复制行记录(仅当该行不存在时),但我找到的解决方案只是其中的一部分。例如,“复制记录”或“如果不存在则插入”。所以我试图合并这些答案来制作我的答案,但是......我想我只是做了一些令人厌恶的代码。
让我们看看这个
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);
有一条默认格式记录,UID = 0
。如果没有NAME = S_TYPE
的记录,则复制NAME = S_TYPE AND UID = 0
的记录,并将UID
更改为11。该记录应复制所有列的数据。所以我尝试使用 SELECT * 但不确定是否正确。
我确定我把两个 WHERE
s 搞砸了...
P粉8608979432024-02-22 11:55:57
如果您已经有 WHERE
那么后续应该是 AND
。我不认为你真的需要第一个 WHERE
上的括号:
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);