SQLPlus AUTO_INCREMENT 错误
当我尝试在 SQLPlus 中运行以下命令时:
CREATE TABLE Hotel
(hotelNo NUMBER(4) NOT NULL AUTO_INCREMENT,
hotelName VARCHAR(20) NOT NULL,
city VARCHAR(50) NOT NULL,
CONSTRAINT hotelNo_pk PRIMARY KEY (hotelNo));
我收到以下错误:
(hotelNo NUMBER(4) NOT NULL AUTO_INCREMENT,
*
ERROR at line 2:
ORA-00907: missing right parenthesis
我做错了什么?
When I try and run the following command in SQLPlus:
CREATE TABLE Hotel
(hotelNo NUMBER(4) NOT NULL AUTO_INCREMENT,
hotelName VARCHAR(20) NOT NULL,
city VARCHAR(50) NOT NULL,
CONSTRAINT hotelNo_pk PRIMARY KEY (hotelNo));
I get the following error:
(hotelNo NUMBER(4) NOT NULL AUTO_INCREMENT,
*
ERROR at line 2:
ORA-00907: missing right parenthesis
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
或者 - 从 Oracle 12.1 开始 - 您可以简单地拥有:
Or - starting with Oracle 12.1 - you can simply have:
许多人会抱怨这不是 Oracle 中的标准功能,但是当它就像在 CREATE TABLE 命令之后再加两个命令一样简单时,我看不出有任何充分的理由在每次插入时使用花哨的 SQL。
首先让我们创建一个简单的表格来玩。
现在我们假设我们希望 ID 成为一个自动递增字段。首先我们需要一个序列来从中获取值。
现在我们可以在表的 BEFORE INSERT 触发器中使用该序列。
Many will gripe about this not being a standard feature in Oracle, but when it’s as easy as two more commands after your CREATE TABLE command I can’t see any good reason to use fancy SQL on every insert.
First let’s create a simple table to play with.
Now we’ll assume we want ID to be an auto increment field. First we need a sequence to grab values from.
Now we can use that sequence in a BEFORE INSERT trigger on the table.
Oracle没有auto_increment,需要使用序列。
Oracle has no auto_increment, you need to use sequences.