ホームページ > データベース > mysql チュートリアル > SQLite の「UNIQUE 制約が失敗しました: sqlite3 結果コード 1555」エラーを解決する方法?

SQLite の「UNIQUE 制約が失敗しました: sqlite3 結果コード 1555」エラーを解決する方法?

Barbara Streisand
リリース: 2024-12-25 15:22:18
オリジナル
195 人が閲覧しました

How to Resolve

SQLite での UNIQUE 制約失敗エラーの処理方法

問題:

SQLite データベースにデータを挿入するときに、 「UNIQUE 制約が失敗しました: sqlite3 結果コード」というエラーが表示される1555."

説明:

このエラーは、テーブルに既に存在する主キー値を持つデータを挿入しようとすると発生します。デフォルトでは、SQLite はエントリの重複を防ぐために主キー列に一意の制約を適用します。

解決策:

このエラーを処理するには、主に 2 つの解決策があります:

1.重複レコードを無視:

重複レコードを無視して他のデータの挿入を続けるには、次の構文を使用します:

INSERT OR IGNORE INTO (column1, column2, ...) VALUES (value1, value2, ...);
ログイン後にコピー

2.既存のレコードを置き換える:

既存のレコードを新しいデータで置き換えるには、次の構文を使用します:

INSERT OR REPLACE INTO (column1, column2, ...) VALUES (value1, value2, ...);
ログイン後にコピー

例:

提供されたコードでは、リスト テーブルに重複した list_id 値を挿入し、アイテム テーブルに重複した item_id 値を挿入しています。このエラーを処理するには、次の変更コードを使用できます:

変更されたリスト Insert Statements:

INSERT OR IGNORE INTO list VALUES (1, "user1-list1", 1);
INSERT OR IGNORE INTO list VALUES (2, "user1-list2", 1);
INSERT OR IGNORE INTO list VALUES (3, "user1-list3", 1);
INSERT OR IGNORE INTO list VALUES (1, "user2-list1", 2);
INSERT OR IGNORE INTO list VALUES (1, "user3-list1", 3);
INSERT OR IGNORE INTO list VALUES (2, "user3-list2", 3);
ログイン後にコピー

変更された項目 Insert Statements:

INSERT OR IGNORE INTO item VALUES (1, "user1-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user1-list1-item2", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user1-list2-item1", "FALSE", 2);
INSERT OR IGNORE INTO item VALUES (1, "user1-list3-item1", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (2, "user1-list3-item2", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (1, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list3-item1", "FALSE", 2);
ログイン後にコピー

INSERT OR IGNORE または INSERT のいずれかを使用するOR REPLACE 構文を使用すると、UNIQUE 制約失敗エラーを解決し、意図したとおりにデータを挿入できます。

以上がSQLite の「UNIQUE 制約が失敗しました: sqlite3 結果コード 1555」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート