oracle建表语句
(
pn varchar(10) not null,
isd varchar(20) not null default '',
title varchar(150) not null default '',
abst varchar(2000) not null default '',
appno varchar(20) not null default '',
appdate varchar(20) not null default '',
inventor varchar(200) not null default '',
assignee_name varchar(50) not null default '',
assignee_country varchar(20) not null default '',
assignee_city varchar(20) not null default '',
assignee_state varchar(10) not null default '',
primary key (pn)
)
以上的sql在执行后提示:
17:30:12 [CREATE - 0 row(s), 0.020 secs] [Error Code: 907, SQL State: 42000] ORA-00907: 缺失右括号
... 1 statement(s) executed, 0 row(s) affected, database exec time 0.020 sec [0 successful, 0 warnings, 1 errors]
好像没有少括号,请问哪里有问题呢?谢谢!
照一楼的说法做了,但现在我输入一条仅包括主键pn的数据到表中,他提示:无法将 NULL 插入,其它的字段禁止为空了,我的意思是除第一个字段主键外,其它字段可以不输入,而是直接赋值为空,请问这该怎么修改呢?谢谢! 展开
(
pn varchar(10) not null,
isd varchar(20) default '' not null ,
title varchar(150) default '' not null ,
abst varchar(2000) default '' not null ,
appno varchar(20) default '' not null ,
appdate varchar(20) default '' not null ,
inventor varchar(200) default '' not null ,
assignee_name varchar(50) default '' not null ,
assignee_country varchar(20) default '' not null ,
assignee_city varchar(20) default '' not null ,
assignee_state varchar(10) default '' not null,
primary key (pn)
)
这样就OK了
你写反了
除第一个字段主键外,其它字段可以不输入,而是直接赋值为空
create table usptotest
(
pn varchar(10) not null,
isd varchar(20) default '' ,
title varchar(150) default '' ,
abst varchar(2000) default '' ,
appno varchar(20) default '',
appdate varchar(20) default '' ,
inventor varchar(200) default '' ,
assignee_name varchar(50) default '',
assignee_country varchar(20) default '' ,
assignee_city varchar(20) default '' ,
assignee_state varchar(10) default '' ,
primary key (pn)
)
CREATE SEQUENCE add_emp
increment by 1 -- 每次递增1
start with 1 -- 从1开始
nomaxvalue -- 没有最大值
minvalue 1 -- 最小值=1
NOCYCLE; -- 不循环
Sequence created.SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );
Table created.SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
Trigger created.SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');
1 row created.SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
1 row created.
SQL> SELECT * FROM test_create_tab2;