如何使用ALTER TABLE
添加新列并使其唯一?
答案 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)
如果您有表中的数据,则需要分三步执行此操作:
答案 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`;