1

我正在尝试从表中读取值,只有当我尝试插入的凝视在表中不存在时,它们才会将其插入另一个表中。

我曾尝试使用 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;
4

2 回答 2

2

子句 isINSERT INTO ... SELECT和 not 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
于 2013-07-27T00:53:52.160 回答
1

改为使用INSERT IGNORE

INSERT IGNORE INTO result_codes(result_code_title, created_by)
SELECT Field1, '2'
FROM RSF

它通过主键或唯一索引检测一行是否已经存在,如果是这种情况则不尝试插入。

于 2013-07-27T00:53:32.020 回答