表级约束,也可以做列级约束

你上次和我说,可以做表级约束,也可以做列级约束,但是我怎么做表级约束就出错,做列级约束就可以,但是书上的例题就是表级约束。
例如:create table test(sno char(10),age int constraint cage default 20) 就可以
但是create table test(sno char(10),age int,constraint cage default 20 for age)就报错,请帮我查查原因,然后告诉我解释和正确写法
http://topic.csdn.net/u/20090715/11/ce3bc993-40d5-4e57-a049-c6af4a44839a.html
我做了些实验:
这两个例子
create table teacher
(
    id int primary key,/*列级中定义约束条件*/
    age int,
    salary decimal(12,5),
    welfare decimal(12,5),
    constraint c1 check(salary +welfare >=3000) /*在表级中定义约束条件*/
)

create table products (
p_id char(8) ,
p_name char(10) ,
price money default 0.01 ,
quantity smallint check (quantity>=10) , /* 列约束 */
constraint pk_p_id primary key (p_id, p_name) /* 表约束 */
)

另外参见网页:http://www.cnblogs.com/tuyile006/archive/2007/08/21/864088.html
这里讲的比较好 。

除 缺省约束(Default Constraint)外,其他的如:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)。都是能像我们上面那样写的,但是缺省约束(Default Constraint)就是会出现问题!里面讲到的 7.2.5 缺省约束和你上面写的是一致的

我也不知道为什么会这样,其实在创建表的时候好像不用使用 constraint也是可以的如:

create table SC
(
    sno char(9) not null,
    cno char(4) not null,
    grade smallint check(grade>=0 and grade <=40) /*当然这里也可以定义成表级约束*/
    primary key(sno,cno),/*这里只能用表级约束了*/
    foreign key(sno) references student(sno),
    foreign key(cno) references course(cno)
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值