sqlite delete 예제

SQLite에서 DELETE 쿼리는 테이블에서 기존 레코드를 삭제하는 데 사용됩니다. WHERE 절또는 WHERE 절 없이 사용할 수 있습니다. WHERE 절은 특정 레코드(선택한 행)를 삭제하는 데 사용되며 그렇지 않으면 모든 레코드가 삭제됩니다. “StudentId = 11 OR StudentId = 12″라는 표현은 ID 11 및 12가 있는 학생에 대해서만 true가 됩니다. 따라서 DELETE 절은 둘 다에 적용되며 삭제됩니다. SQLite Delete 명령은 행을 선택하기 위해 테이블 이름과 조건식만 필요하며 WHERE 조건은 테이블에서 모든 행을 삭제하는 대신 삭제할 특정 행을 선택합니다. drop 명령은 전체 테이블을 삭제합니다. 이제 테이블 피사체가 존재하지 않습니다. SQLite Delete 문을 위에서 관찰하는 경우 문을 삭제하고 일부 속성을 정의하여 테이블에서 레코드를 삭제했습니다. DELETE 문에 ORDER BY 절이 없는 경우 LIMIT 절이 없을 때 삭제되는 모든 행은 LIMIT 및 OFFSET 절을 적용하기 전에 임의의 순서로 어셈블되어 실제로 삭제되는 하위 집합을 결정합니다. 학생의 ID 4 기록이 삭제됩니다. SELECT 문을 사용하여 확인할 수 있습니다: TRUNCATE 명령 기능은 모든 행을 확인하지 않고 SQLite 테이블에서 데이터를 지웁히 합니다.

SQLite에서 DELETE 명령을 사용하면 테이블 잘림 프로세스가 훨씬 빨라집니다. 이제 예를 들어 보겠습니다. 예를 들어 열에 UNIQUE 제약 조건이 있고 UNIQUE 제약 조건과 충돌하는 이미 존재하는 값(중복 값)을 삽입하려고 시도한 경우입니다. 그런 다음 CONFLICT 절을 사용하면 이러한 경우 이 충돌을 해결하기 위해 수행할 작업을 선택할 수 있습니다. 예를 들어 휴대 전화 모델 (“휴대폰”)의 테이블을 살펴 보겠습니다. 테이블은 네 개의 선으로 구성됩니다. 데이터베이스 트랜잭션이라는 용어는 SQLite 작업(삽입 또는 업데이트 또는 삭제)의 목록입니다. 데이터베이스 트랜잭션은 모든 작업이 성공적으로 실행되거나 전혀 실행되지 않는 하나의 단위로 실행되어야 합니다. 그 중 하나가 실행되지 않으면 모든 작업이 취소됩니다. DELETE 문의 ORDER BY 절은 제한 내에 있는 행을 결정하는 데만 사용됩니다. 행이 삭제되는 순서는 임의적이며 ORDER BY 절의 영향을 받지 않습니다.

대신 SQLite 작성자는 DELETE 문에 TRUNCATE 기능을 추가했습니다. 이 명령을 사용하여 하나 또는 모든 행을 삭제하는 원칙은 다릅니다. SQLite 테이블의 모든 행을 제거하려면 다른 명령을 수행하기만 하면됩니다. 학생 테이블의 모든 레코드를 다음과 같이 선택하여 두 학생이 삭제되었는지 확인할 수 있습니다. 테이블에서 모든 행을 삭제할 때 테이블의 구조가 삭제되지 않고 레코드만 삭제됩니다. 데이터베이스에서 테이블을 삭제하려면 DROP 명령이 사용됩니다. DROP TABLE 명령으로 전체 테이블을 삭제할 수도 있습니다. 이렇게 하면 전체 테이블을 삭제한 다음 처음부터 다시 만들 수 있습니다.

sqlite3_set_authorizer() 인터페이스를 사용하여 런타임에 트런케이트 최적화를 사용하지 않도록 설정할 수도 있습니다. 권한 부여자 콜백이 SQLITE_DELETE 작업 코드에 대해 SQLITE_IGNORE를 반환하면 DELETE 작업이 진행되지만 트런케이트 최적화가 무시되고 행이 하나씩 삭제됩니다. SQLite Delete 쿼리를 관찰하면 delete 문에 대한 특정 조건을 정의하지 않았기 때문에 테이블에서 모든 행이나 레코드가 삭제됩니다. SQLite DELETE 명령에서 단일 테이블에서 하나 이상의 행을 삭제하거나 제거하는 데 사용됩니다. 행이 테이블에서 완전히 삭제됩니다. 트리거 본문 내에서 DELETE 문의 일부로 지정된 테이블 이름은 정규화되지 않아야 합니다. 즉, 스키마 이름입니다. 테이블 이름의 접두사는 트리거 내에서 허용되지 않습니다.

트리거가 연결된 테이블이 temp 데이터베이스에 없는 경우 트리거 본문 내의 DELETE 문은 동일한 데이터베이스 내의 테이블에서 작동해야 합니다.