请教两道数据库有关的题目

(1)将员工表employee中的薪水字段salary的值限定在1000至10000间,约束名为CK_salary。我是这样写的程序,altertableemployee... (1)将员工表employee中的薪水字段salary的值限定在1000至10000间,约束名为CK_salary。我是这样写的程序,
alter table employee
add salary check(salary between 1000 and 10000)
但是运行不了,问题是【列 'salary' 的定义中必须包括数据类型。】

(2)在销售主表sales中添加字段“发票号码” invoice_no,char(10),NOT NULL。

alter table sales
add invoice_no char(10) NOT NULL (运行有问题)

求详细讲解,我的问题出在哪里了?谢谢啦~
我把第一题的程序改了下,运行出来了,改为了:
alter table employee
add constraint CK_salary check(salary between 1000 and 10000)
那个第二题SQL上的运行错误提示是“ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'invoice_no' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 'sales' 中。
”应该怎么改呀?
展开
 我来答
mysunzone
2010-11-18 · 超过14用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:39.3万
展开全部
问题出在格式的错误上,也没有为什么oracle就是规定这个语句的格式就是这样,你在增加列的时候必须指定该列的数据类型
alter table employee add (salary number check(salary between 1000 and 10000));

alter table sales add (invoice_no char(10) NOT NULL );
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式