2013-05-10 1 views
1

EXISTS 기능을 사용할 때 mysql에서 오류가 발생합니다. 중복 된 키 경로를 사용하되 'str'필드는 TEXT 유형이어야합니다.MySQL EXISTS() 오류

INSERT INTO `locale_display_string` (str, date) VALUES ('test', '1368204427') 
WHERE NOT EXISTS (SELECT * FROM `locale_display_string` WHERE str='test'); 

을 내가 잘못 뭐하는 거지 : 여기

CREATE TABLE `locale_display_string` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `str` TEXT NOT NULL, 
    `date` INT(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) 
TYPE=MyISAM; 

쿼리 내가 실행하는 것을 시도하고있다 : 여기

내 테이블?

+1

무엇이 오류입니까? – Sudz

+1

MySQL INSERT 구문이 WHERE 절을 지원하지 않는다고 생각합니다. – mask8

+0

'SELECT EXISTS (SELECT * FROM locale_display_string); – skeelsave

답변

2

VALUES은 (는) 호환되지 않습니다 ... SELECT을 사용하십시오.

INSERT INTO `locale_display_string` (str, date) 
SELECT 'test', '1368204427' 
FROM `locale_display_string` 
WHERE NOT EXISTS(SELECT TRUE FROM `locale_display_string` WHERE str='test') 
LIMIT 1