如何使用ALTER TABLE添加新列并使其唯一?

时间:2010-09-17 11:30:43

标签: sql unique alter-table

如何使用ALTER TABLE添加新列并使其唯一?

4 个答案:

答案 0 :(得分:14)

取决于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)

答案 1 :(得分:4)

如果表是空的

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

如果您有表中的数据,则需要分三步执行此操作:

  1. 添加列
  2. 填写值
  3. 添加唯一约束

答案 2 :(得分:1)

这是一个两步过程:添加新列,然后添加约束。因为UNIQUE约束允许空值,所以表是否填充无关紧要:

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>

答案 3 :(得分:0)

您可以使用单个SQL语句(至少使用MySQL)来执行此操作:

ALTER TABLE `people` ADD COLUMN `personal_code` VARCHAR(50) UNIQUE AFTER `surname`;