본문 바로가기
MySql

MySQL mysql 조건부 삽입-존재하지 않는 경우 삽입

by 베이스 공부 2020. 12. 10.
반응형

레코드를 확인하고 존재하지 않는 경우 삽입하는 쿼리가 있습니까? 중복 업데이트 또는 교체하고 싶지 않습니다. 하나의 쿼리 솔루션을 찾고 다른 답변을 보았지만 실제로 내가 원하는 것은 아닙니다.

표:

name|value|id
------------------
phill|person|12345

의사 쿼리 :

IF NOT EXISTS(name='phill', value='person', id=12345) INSERT INTO table_name

 

해결 방법

 

REPLACE 사용-테이블의 이전 행이 PRIMARY KEY 또는 UNIQUE 인덱스의 새 행과 동일한 값을 갖는 경우 새 행 이전에 이전 행이 삭제된다는 점을 제외하면 INSERT와 똑같이 작동합니다. 삽입됩니다.


-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345) 

편집 : REPLACE를 사용할 수 없기 때문에 다른 옵션은 테이블 데이터 (기본 키, 고유성)에 대한 제약 인덱스를 설정하고 INSERT IGNORE를 사용하는 것입니다.

INSERT IGNORE INTO table_name
SET name = 'phill',
    value = 'person',
    id = 12345;

 

참조 페이지 https://stackoverflow.com/questions/2223344

 

 

반응형

댓글