Sqlite に既存のテーブルがあります。一意の制約を追加するにはどうすればよいですか?
3 に答える
SQLite の既存のテーブルに制約を追加することはできません(SQL にはそれを行うためのオプションがあります)。必要な制約を指定してテーブルを再作成する必要があります。
sqlite の alter table コマンドで使用できるオプションはわずかしかありません。画像を確認してください:
Sqlite org referenceも確認してください。
編集
ただし、テーブルに一意のインデックスを追加して、同じ効果を得ることができます。したがって、次のクエリを使用してそれを実現できます。
CREATE UNIQUE INDEX your_unique_index ON your_table(column_name);
ほとんどの場合、UNIQUE および PRIMARY KEY 制約は、データベースに一意のインデックスを作成することによって実装されます。
参考:SQLiteの制約
一意のインデックスを作成して制約を追加できます。
CREATE UNIQUE INDEX ux_friend_name ON friend(name);
ここで、ux_friend_name
は一意のインデックス名です。friend(name)
- この制約の影響を受けるテーブルとその列。
詳しくはこちらをご覧ください。
FireFox の SQLiteManager を使用していると仮定しています。テーブルを再度作成してください。通常、テーブルを作成済みの場合、制約を変更することはできません。
注- コードを使用して行うこともできます。これは別の方法です。
編集済み 下の画像を参照