我试图从表中读取值,只有当我尝试插入的凝视在表中不存在时才将其插入另一个表中。
我曾尝试使用ON DUPLICATE KEY子句,但是我遇到了一个无法解决的语法问题。
这是我的查询
SELECT Field1 FROM RSF
INSERT INTO result_codes(result_code_title, created_by)
VALUES (Field1, '2')
ON DUPLICATE KEY UPDATE result_code_title = Field1;
答案 0 :(得分:2)
该条款为INSERT INTO ... SELECT
而非SELECT ... INSERT INTO
。因此:
INSERT INTO result_codes( result_code_title, created_by )
SELECT Field1, '2'
FROM RSF
ON DUPLICATE KEY
UPDATE result_code_title = Field1;
我认为这应该有用。
由于您只想在字符串不存在时插入;你最好使用INSERT INGORE
:
INSERT IGNORE INTO result_codes( result_code_title, created_by )
SELECT Field1, '2'
FROM RSF
答案 1 :(得分:1)
改为使用INSERT IGNORE
。
INSERT IGNORE INTO result_codes(result_code_title, created_by)
SELECT Field1, '2'
FROM RSF
它通过主键或唯一索引检测,如果一行已经存在,并且在这种情况下不会尝试插入。