12

ALTER TABLE新しい列を追加して一意にするにはどうすればよいですか?

4

4 に答える 4

22

DBMS によって異なりますが、以下は移植性が高いと思います。

ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name ADD UNIQUE (column_name)

制約に名前を付けたい場合はUNIQUE、最後のコマンドを次のように置き換えることができます。

ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name)
于 2010-09-17T11:33:30.110 に答える
5

テーブルが空の場合

  ALTER TABLE ADD (FieldName Type)
  ALTER TABLE ADD CONSTRAINT UNIQUE(FieldName)

テーブルにデータがある場合は、次の 3 つの手順でこれを行う必要があります。

  1. 列を追加
  2. 値を埋める
  3. ユニーク制約を追加
于 2010-09-17T11:34:52.977 に答える
1

これは 2 段階のプロセスです。新しい列を追加してから、制約を追加します。UNIQUE 制約は null を許可するため、テーブルに値が入力されているかどうかは問題ではありません。

SQL> select count(*) from t23
  2  /

  COUNT(*)
----------
         2


SQL> alter table t23
  2      add new_col number
  3  /

Table altered.

SQL> alter table t23
  2      add constraint t23_uk unique (new_col)
  3  /

Table altered.

SQL>
于 2010-09-17T11:48:59.417 に答える