Sql 在Oracle中创建表时出错
上面说缺少关键字…我需要帮助,真的很快有人出现了多个问题: 首先-在创建外键约束时,使用Sql 在Oracle中创建表时出错,sql,oracle,Sql,Oracle,上面说缺少关键字…我需要帮助,真的很快有人出现了多个问题: 首先-在创建外键约束时,使用引用而不是引用 第二个-salary被定义为numeric(10,6)-这只留下小数点左侧四位数字的空间,因此10000的默认值不适合该字段,因为它在小数点左侧有五位数字。我将此列的定义更改为numeric(11,6) 第三-使用VARCHAR2而不是VARCHAR。Oracle已声明,在某个时刻,他们将更改VARCHAR的行为以符合ANSI定义,这意味着其行为将发生变化。在此之前(可能发生也可能永远不会发生
引用
而不是引用
第二个-salary
被定义为numeric(10,6)
-这只留下小数点左侧四位数字的空间,因此10000
的默认值不适合该字段,因为它在小数点左侧有五位数字。我将此列的定义更改为numeric(11,6)
第三-使用VARCHAR2
而不是VARCHAR
。Oracle已声明,在某个时刻,他们将更改VARCHAR
的行为以符合ANSI定义,这意味着其行为将发生变化。在此之前(可能发生也可能永远不会发生),请使用VARCHAR2
综合以上所有因素,我们得出:
CREATE TABLE employee
(
empno INT PRIMARY KEY,
ename VARCHAR(20) NOT NULL,
post VARCHAR (10) NOT NULL,
gender CHAR(1),
citizenshipno VARCHAR(10),
salary NUMERIC(10,6) DEFAULT 10000,
deptno INT,
CONSTRAINT ck_gender CHECK(gender IN('M','F')),
CONSTRAINT uc_citizenshipno UNIQUE(citizenshipno),
CONSTRAINT fk_department FOREIGN KEY(deptno) REFERENCE department(deptno)
)
祝您好运。您的CREATE语句存在多个问题:
- 它还说缺少右括号不要使用注释为问题添加更多信息,而是使用
编辑
按钮(在问题标签下方)直接将信息添加到问题中。谢谢。将引用更改为引用谢谢你救了我…我想问你一个问题,虽然我无法获得默认值,但为什么它必须是(11,6)如果某个东西被声明为
你是说你希望它能够容纳最多10位有效数字,其中有六个在小数点的右边,所以这个字段中可以包含的最大数字是9999.9999999,因此10000不适合。通过将字段大小更改为数字(11,6),可以存储的最大可能值变为99999.9999999,这样就可以在这样的字段中存储10000个。哦,我知道了,谢谢你,我的老师给了我一个错误的问题,然后让他发呆NUMERIC(10,6)
IS NOT NULL REFERENCE VARCHAR data type NUMERIC(10,6) DEFAULT 10000create table employee (empno int primary key, ename varchar2(20) not null, post varchar2(10) not null, gender char(1), citizenshipno varchar2(10), salary numeric(11,6) default 10000, deptno int, constraint ck_gender check(gender in('M','F')), constraint uc_citizenshipno unique(citizenshipno), constraint fk_department foreign key(deptno) references department(deptno));
NUMERIC(11,6) DEFAULT 10000