12

Sqlite に既存のテーブルがあります。一意の制約を追加するにはどうすればよいですか?

4

3 に答える 3

34

SQLite の既存のテーブルに制約を追加することはできません(SQL にはそれを行うためのオプションがあります)。必要な制約を指定してテーブルを再作成する必要があります。

sqlite の alter table コマンドで使用できるオプションはわずかしかありません。画像を確認してください:

他の机

Sqlite org referenceも確認してください。


編集

ただし、テーブルに一意のインデックスを追加して、同じ効果を得ることができます。したがって、次のクエリを使用してそれを実現できます。

CREATE UNIQUE INDEX your_unique_index ON your_table(column_name);

ほとんどの場合、UNIQUE および PRIMARY KEY 制約は、データベースに一意のインデックスを作成することによって実装されます。

参考:SQLiteの制約

于 2013-03-19T11:28:36.580 に答える
14

一意のインデックスを作成して制約を追加できます。

CREATE UNIQUE INDEX ux_friend_name ON friend(name);

ここで、ux_friend_nameは一意のインデックス名です。friend(name)- この制約の影響を受けるテーブルとその列。

詳しくはこちらをご覧ください

于 2016-02-09T20:52:45.883 に答える
-2

FireFox の SQLiteManager を使用していると仮定しています。テーブルを再度作成してください。通常、テーブルを作成済みの場合、制約を変更することはできません。

- コードを使用して行うこともできます。これは別の方法です。

編集済み 下の画像を参照

ここに画像の説明を入力

于 2013-03-19T11:21:07.120 に答える