如何使用ALTER TABLE
添加新列並使其唯一?如何使用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);' – 2015-07-27 02:19:21
如果表是空的
ALTER TABLE ADD (FieldName Type)
ALTER TABLE ADD CONSTRAINT UNIQUE(FieldName)
如果你在表中的數據,你需要爲t他的三個步驟:
- 添加列
- 填充值
- 添加唯一約束
正如@APC指出的那樣,'UNIQUE'允許有多個NULL值,所以如果表中有數據,就不需要三步完成。 – 2010-09-17 13:26:48
@Daniel,oracle是允許這樣做的,sql server不允許(直到你改變設置) – 2010-09-17 13:46:37
這是一個兩步過程:添加新coloumn,然後添加約束。由於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>
你可以用一個SQL語句(與MySQL至少)做到這一點:
ALTER TABLE `people` ADD COLUMN `personal_code` VARCHAR(50) UNIQUE AFTER `surname`;
- 1. 的SQL Server 2008 ::如何使用ALTER TABLE添加具有在另一列中的每個唯一值唯一編號的新列
- 2. Postgresql alter table - >添加列+值
- 3. 在alter table中動態添加列名
- 4. ALTER TABLE添加一個複合主鍵
- 5. SQL的ALTER TABLE添加一列,其默認值是基於其他值
- 6. SQL Alter Table添加一列,它做任何「可怕的」?
- 7. 添加DATETIME列的Alter Table語法看起來如何?
- 8. 使用alter table查詢添加分區和子分區
- 9. ALTER TABLE - ADD vb.net中的列將始終添加一個表?
- 10. ALTER TABLE添加外鍵失敗
- 11. ALTER TABLE添加ON DELETE CASCADE聲明
- 12. MariaDB:添加FOREIGN KEY的ALTER TABLE語法?
- 13. 爲alter table添加約束出錯
- 14. 是否有可能使用alter table添加到兩個表中的列?
- 15. alter sqlite表在多列上添加唯一約束
- 16. 「語法錯誤」,並稱用ALTER TABLE一個YY-MM-DD列時
- 17. liquibase - Alter Table添加列 - 可以安全地在之間添加varchar列
- 18. 如何使用Alter在SQL-Server 2014中的現有視圖中添加新列
- 19. ALTER TABLE在其他用戶火鳥
- 20. 向現有表添加一列,併爲其添加唯一編號
- 21. ALTER視圖,添加新的列
- 22. ALTER TABLE添加多個列與字符串變量
- 23. alter table來基於訂購添加標識列通過
- 24. PHP的mysqli不通過變量添加列(ALTER TABLE)
- 25. CREATE TABLE AS - 如何用PK添加列?
- 26. 使用CodeIgniter HTML Table Class,我如何添加額外的列?
- 27. 欄添加「ALTER TABLE」當我提出一個要求不出現
- 28. 如何使用jQuery向表中添加新行,並向其添加遞增ID
- 29. Mysql - alter table
- 30. ALTER TABLE錯誤
什麼數據庫服務器?請提供更多信息。 – 2010-09-17 11:33:19