各位大哥,oracle的default属性语法怎么写
我建表的时候
CREATE TABLE topic(
  id number(15) NOT NULL,  
  parentid number(16) NOT NULL default 0,
  forumid number(16) NOT NULL default 0,
  username varchar(20),
  title varchar(250),
  content varchar2(1000),
  postdate date ,
  replies number(16) NOT NULL default 0
);
老是在default报错:ORA-00907: 缺少右括号

解决方案 »

  1.   


    SQL> CREATE TABLE topic(
      2    id number(15) NOT NULL, 
      3    parentid number(16) default 0 NOT NULL ,
      4    forumid number(16) default 0 NOT NULL ,
      5    username varchar(20),
      6    title varchar(250),
      7    content varchar2(1000),
      8    postdate date ,
      9    replies number(16) default 0 NOT NULL 
     10  ); Table created.SQL> 
      

  2.   

    既然都有默认值了,那就没有必要not null了。
    CREATE TABLE topic( 
      id number(15) NOT NULL,  
      parentid number(16)  default 0, 
      forumid number(16)  default 0, 
      username varchar(20), 
      title varchar(250), 
      content varchar2(1000), 
      postdate date , 
      replies number(16)  default 0 
    ); 
      

  3.   

    /--not null和default 0是重复的。
     
    CREATE TABLE topic( 
      id number(15) NOT NULL,  
      parentid number(16)  default 0, 
      forumid number(16)  default 0, 
      username varchar(20), 
      title varchar(250), 
      content varchar2(1000), 
      postdate date , 
      replies number(16)  default 0 
    ); 
      

  4.   

    楼上大侠们, 默认值和非空约束是两回事吧?
    SQL> create table t10(
      2  id varchar2(10) default 'notset');Table created.SQL> insert into t10 values('aa');1 row created.SQL> insert into t10 values('bb');1 row created.SQL> commit;Commit complete.SQL> update t10 set id = null where id = 'aa';1 row updated.SQL> select * from t10;ID
    ----------bbSQL> commit;
      

  5.   

    那就是1楼的正解,谢谢lpc19598188 提醒。好好学习!