2010-04-29 65 views
3

糾正我,如果我錯了,但是這個SQL命令:JavaDB SQL命令還原劑?

create table MYTABLE (ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)) 

不需要NOT NULL部分,作爲主鍵是假設,在默認情況下,是不爲空。

這不是還原劑嗎?

(我並不安全,只是測試,並在結果沒有異議的,規劃是長期充滿驚喜)

我使用JavaDB之外/德比。

回答

4

是的,主鍵是唯一索引和非空約束的組合。後者由SQL99標準功能E141-08定義。

看來,在舊版本的德比不可能建立主鍵,除非該列也可爲空聲明:

> PRIMARY KEY does not imply NOT NULL. Derby issues error message: 

ij> create table tab (i integer primary key); 
ERROR 42831: 'I' cannot be a column of a primary key or unique key because it 
can contain null values. 

這是一個錯誤,它一直fixed

+1

哦,天啊!獨角獸回來了! XD – 2010-04-29 14:46:03