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)

如果表中有数据,则需要分三步完成:

  1. 添加列
  2. 填充值
  3. 添加唯一约束
于 2010-09-17T11:34:52.977 回答
2

您可以使用单个 SQL 语句(至少使用 MySQL)来完成:

ALTER TABLE `people` ADD COLUMN `personal_code` VARCHAR(50) UNIQUE AFTER `surname`;
于 2017-08-29T14:22:30.607 回答
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>
于 2010-09-17T11:48:59.417 回答