oracle建表语句

createtableusptotest(pnvarchar(10)notnull,isdvarchar(20)notnulldefault'',titlevarchar... create table usptotest
(
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 插入,其它的字段禁止为空了,我的意思是除第一个字段主键外,其它字段可以不输入,而是直接赋值为空,请问这该怎么修改呢?谢谢!
展开
 我来答
百度网友fc82f346e
2008-08-12 · TA获得超过904个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:187万
展开全部
create table usptotest
(
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)
)
未成年面包abc
2019-05-06
知道答主
回答量:5
采纳率:0%
帮助的人:1.9万
展开全部

把default关键字去掉,Oracle不支持 not null 和 default 同时使用,你这是MySQL的语法了,双引号也去掉就可以了,亲测成功。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高中生三baby
高粉答主

2018-05-09 · 说的都是干货,快来关注
知道小有建树答主
回答量:420
采纳率:96%
帮助的人:16.2万
展开全部

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;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AskTable
2008-08-12 · TA获得超过408个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:271万
展开全部
就在引号中间加个空格吧!这样就可以了,其实没必要手动加个 default '',它和系统默认的null是一样的——在没加空格的时候!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式