2010-04-29 56 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