2016-04-27 37 views
-1

我碰到一個例子就是用下面的查詢在Alter表中添加[Constraint]語法是否需要「約束」關鍵字?

ALTER TABLE T ADD UNIQUE(col1) 

通常我會寫

ALTER TABLE T ADD CONSTRAINT UNIQUE(col1) 
ALTER TABLE T ADD CONSTRAINT UQ_1 UNIQUE(col1) 

的無名和命名約束。

我的問題是關鍵字CONSTRAINT是否需要?我找不到這方面的參考。我們可以寫

ALTER TABLE T ADD FOREIGN KEY(col1) REFERENCE T1(col2) 
ALTER TABLE T ADD PRIMARY KEY(col1) 
+1

應當**'REFERENCES' **不'REFERENCE' – lad2025

回答

3

是的,我們可以使用:

ALTER TABLE T ADD FOREIGN KEY(col1) REFERENCES T1(col2); 
ALTER TABLE T ADD PRIMARY KEY(col1); 

LiveDemo

,或者如果你想給它們命名:

ALTER TABLE T ADD CONSTRAINT fk_T_T1 FOREIGN KEY(col1) REFERENCES T1(col2); 
ALTER TABLE T ADD CONSTRAINT pk_T PRIMARY KEY(col1); 

ALTER TABLE

enter image description here

圖片從:http://docs.oracle.com/cd/B28359_01/server.111/b28286/img/constraint_clauses.gif

和:

enter image description here 從圖片:http://docs.oracle.com/cd/B19306_01/server.102/b14200/img/out_of_line_constraint.gif

0

constraint <constraint_name>子條款不是必需的。