복붙노트

[SQL] IF NOT SQLite는 존재 할 방법

SQL

IF NOT SQLite는 존재 할 방법

나는 SQLite는에 포트에 MS SQL 서버에서이 줄을 시도하고있다

IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') 
    INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');

이 NOT이 존재하거나 적어도 내가 작업 할 수없는 경우 SQLite는 지원하지 않는 것 같습니다. 뭔가 단순 실종? 해결 방법이 있습니까?

해결법

  1. ==============================

    1.이건 어때요?

    이건 어때요?

    INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'
    

    (I SQLite는없는 안된로 ... 그러나이 링크는 매우 설명입니다.)

    또한,이 또한 작동합니다 :

    INSERT INTO EVENTTYPE (EventTypeName)
    SELECT 'ANI Received'
    WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
    
  2. ==============================

    2.기존 값의 삽입을 무시하려면, 테이블에 키 필드가 있어야합니다. 그냥 기본 키 필드 등으로 테이블을 만들 :

    기존 값의 삽입을 무시하려면, 테이블에 키 필드가 있어야합니다. 그냥 기본 키 필드 등으로 테이블을 만들 :

    CREATE TABLE IF NOT EXISTS TblUsers (UserId INTEGER PRIMARY KEY, UserName varchar(100), ContactName varchar(100),Password varchar(100));
    

    다음 삽입 또는 교체 / 삽입 또는 표와 같이 쿼리를 무시 :

    INSERT OR REPLACE INTO TblUsers (UserId, UserName, ContactName ,Password) VALUES('1','UserName','ContactName','Password');
    

    그것은이 당신이 값이 테이블에 존재하는지 여부를 확인 할 수있는 방법인가 ... 그것은 기존의 기본 키 값을 다시 입력 할 수 없습니다.

  3. ==============================

    3.또한 갈등의 키 필드와 세트로 테이블에 제약 조건을 설정할 수 있습니다 "무시"

    또한 갈등의 키 필드와 세트로 테이블에 제약 조건을 설정할 수 있습니다 "무시"

    SQLite는 문서

  4. from https://stackoverflow.com/questions/531035/how-to-do-if-not-exists-in-sqlite by cc-by-sa and MIT license