当前位置: 代码迷 >> Oracle管理 >> oracle语法
  详细解决方案

oracle语法

热度:99   发布时间:2016-04-24 05:27:00.0
oracle语法求助
各位大哥,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: 缺少右括号

------解决方案--------------------
SQL code
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>
------解决方案--------------------
既然都有默认值了,那就没有必要not null了。

SQL code
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 );
------解决方案--------------------
SQL code
/--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 );
------解决方案--------------------
楼上大侠们, 默认值和非空约束是两回事吧?

SQL code
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;
------解决方案--------------------
那就是1楼的正解,谢谢lpc19598188 提醒。好好学习!
  相关解决方案