SQLite での重複挿入の回避
人気の軽量データベース エンジンである SQLite には、他のエンジンでよく見られる IF NOT EXISTS 句の明示的なサポートがありません。 SQLの実装。このハードルは、重複レコードの挿入を防ぐためにこのような機能を利用することに慣れている開発者を困惑させる可能性があります。
この制限を回避するために、SQLite はいくつかの回避策を提供しています。 1 つの方法は、INSERT OR IGNORE コマンドを使用することです。
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
このコマンドは、指定された EventTypeName が EVENTTYPE テーブルにまだ存在しない場合に新しいレコードを挿入します。
もう 1 つのオプションは、次のとおりです。 INSERT ステートメント内でサブクエリを使用します:
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
このアプローチでは、レコードの存在を確認する前にこれを挿入すると、実質的に IF NOT EXISTS 句と同じ結果が得られます。
以上がSQLite にデータを挿入するときに重複エントリを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。