【发布时间】:2010-09-17 11:30:42
【问题描述】:
如何使用ALTER TABLE 添加新列并使其独一无二?
【问题讨论】:
-
什么数据库服务器?请提供更多信息。
标签: sql unique alter-table
如何使用ALTER TABLE 添加新列并使其独一无二?
【问题讨论】:
标签: sql unique alter-table
取决于 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)
【讨论】:
ALTER TABLE payments ADD unit NVARCHAR2(128);
如果表是空的
ALTER TABLE ADD (FieldName Type)
ALTER TABLE ADD CONSTRAINT UNIQUE(FieldName)
如果表中有数据,则需要分三步完成:
【讨论】:
UNIQUE 允许多个NULL 值,因此如果表中有数据,则无需分三步进行。
您可以使用一条 SQL 语句来完成(至少使用 MySQL):
ALTER TABLE `people` ADD COLUMN `personal_code` VARCHAR(50) UNIQUE AFTER `surname`;
【讨论】:
这是一个两步过程:添加新列,然后添加约束。因为 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>
【讨论】: