加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 不能在CREATE TABLE中使用内联约束

发布时间:2021-01-23 18:46:59 所属栏目:站长百科 来源:网络整理
导读:我在Oracle中有以下作为CREATE TABLE: CREATE TABLE cs2_users ( empnum varchar2(12) PRIMARY KEY,toolsId varchar2(20) CONSTRAINT nn_cs2_users_toolsId NOT NULL CONSTRAINT fk_cs2_users_users FOREIGN KEY REFERENCES users.userid,admin number(1,0)

我在Oracle中有以下作为CREATE TABLE:

CREATE TABLE cs2_users (
    empnum     varchar2(12) PRIMARY KEY,toolsId    varchar2(20) 
        CONSTRAINT nn_cs2_users_toolsId NOT NULL
        CONSTRAINT fk_cs2_users_users FOREIGN KEY REFERENCES users.userid,admin      number(1,0) DEFAULT 0
        CONSTRAINT nn_cs2_users_admin NOT NULL
        CONSTRAINT ck_cs2_users_admin (admin IN (0,1)),givenname  varchar2(30) NOT NULL,middlename varchar2(30),sn         varchar2(30) NOT NULL,mail       varchar2(50) NOT NULL
);

可是它失败并呈现此错误:

ERROR at line 5:
ORA-02253: constraint specification not allowed here`

当我行使SQL * Plus毗连时,这是版本信息:

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 18 16:38:27 2012

Copyright (c) 1982,2011,Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning,OLAP,Data Mining and Real Application Testing options

救命?

办理要领

假如要指定内联束缚,则该界说与列的界说分隔.假如要建设CHECK束缚,则必要指定束缚的范例.而且您的外键束缚必要指定您引用的列.因此,譬喻,这将起浸染

SQL> create table users( userid varchar2(20) primary key );

Table created.


SQL> CREATE TABLE cs2_users (
  2      empnum     varchar2(12) PRIMARY KEY,3      toolsId    varchar2(20) constraint nn_cs2_users_toolsId NOT NULL,4          CONSTRAINT fk_cs2_users_users FOREIGN KEY(toolsId) REFERENCES users(userid),5      admin      number(1,0) DEFAULT 0 constraint nn_cs2_users_admin NOT NULL,6          CONSTRAINT ck_cs2_users_admin CHECK(admin IN (0,7      givenname  varchar2(30) NOT NULL,8      middlename varchar2(30),9      sn         varchar2(30) NOT NULL,10      mail       varchar2(50) NOT NULL
 11  );

Table created.

固然看起来很稀疏,toolsId引用了用户的userId列.您好像更但愿toolsId列从器材表中引用toolsId列,可能假如要从用户引用userId列,则但愿将列定名为userId.但其后我会问为什么你有一个单独的cs2_users列而不是简朴地将这些信息放在users表中.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读