用户shoppingdba ,,表空间为tpshopping,,,,
sqlplus  /nolog
conn  /  as sysdba
1、create  table shoppingdba.t_user(
  uiid   char(6)  primary key,
  uname varchar2(20)   not null,
  ubirthday   date,          ;
  usex     char(1 char)  check(usex='女'OR usex='男'),
  uaddress  varchar2(50),
  utelephone  varchar2(20)
)tablespace tpshopping;
2、create table shoppingdba.t_type(
  gtid  char(6)  primary  key,
  gtname  varchar2(20)   not null
)tablespace tpshopping;
3、create table shoppingdba.t_goods(
   gid    char(6)   primary key,
   gname  varchar2(20)   not null,
   gtid   varchar2(6),
   gprice   number(12,3)  check( gtid>0),
   gdiscount number(5,2) ,
   gstocks     number(7,2)  check( gstocks >0),
   gmaxstocks   number(7,2)  check(  gmaxstocks>=0),
   gminstocks    number(7,2)  check(gminstocks >=0),
   foreign key(gtid)  references shoppingdba.t_type(gtid)
)tablespace tpshopping;建第三个表的时候,,出现了错误:
第10行出现错误:
ORA-02438:列检查约束条件无法引用其他列

解决方案 »

  1.   

    gprice number(12,3) check( gtid>0),改成gprice number(12,3) ,或者
    gprice number(12,3) check( gprice>0),
      

  2.   

    改成下面这样就可以了create table shoppingdba.t_goods(
      gid char(6) primary key,
      gname varchar2(20) not null,
      gtid varchar2(6)  check( gtid>0),
      gprice number(12,3),
      gdiscount number(5,2) ,
      gstocks number(7,2) check( gstocks >0),
      gmaxstocks number(7,2) check( gmaxstocks>=0),
      gminstocks number(7,2) check(gminstocks >=0),
      foreign key(gtid) references shoppingdba.t_type(gtid)
    )tablespace tpshopping;
      

  3.   

    gprice number(12,3) check( gtid>0),
      

  4.   

    刚刚打错了,,打成这样报错了gprice number(12,3) check( gprice>0),是这样报,出现了错误:
    第10行出现错误:
    ORA-02438:列检查约束条件无法引用其他列
    3、 商品信息表(T_GOODS)
    列名 中文名 数据类型 长度 约束 备注
    GID 商品ID CHAR 6 主键
    GNAME 商品名称 VARCHAR2 20 非空
    GTID 类型ID VARCHAR2 6 外键参考商品类型表
    GPRICE 商品标价 NUMBER 12,3 >0
    GDISCOUNT 折扣 NUMBER 5,2
    GSTOCKS 库存量 NUMBER 7,2 大于零
    GMAXSTOCKS 最高库存量 NUMBER 7,2 大于等于零
    GMINSTOCKS 最低库存量 NUMBER 7,2 大于等于零
    GMEMO 商品备注 VARCHAR2 50
      

  5.   


      foreign key(gtid) references t_type(gtid)
    改成
      foreign key(gid) references t_type(gtid)
      

  6.   

    上面的错了,应该是改gtid的类型才对 gtid varchar2(6)  改成 gtid char(6)   
      

  7.   

    谢谢你哦,,,对了引用的那个外键要和第二个表的那个gtid数据类型要一致的,,谢谢。。