SQLPlus AUTO_INCREMENT错误
发布时间:2020-12-12 16:25:24 所属栏目:百科 来源:网络整理
导读:当我尝试在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
当我尝试在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 我究竟做错了什么? 许多人会抱怨这不是Oracle中的标准功能,但是当它在您的CREATE TABLE命令之后就像另外两个命令一样简单时,我看不出有任何理由在每个插入上使用花哨的SQL.首先让我们创建一个简单的表格来玩. SQL> CREATE TABLE test (id NUMBER PRIMARY KEY,name VARCHAR2(30)); Table created. 现在我们假设我们希望ID成为自动增量字段.首先,我们需要一个序列来从中获取值. SQL> CREATE SEQUENCE test_sequence START WITH 1 INCREMENT BY 1; Sequence created. 现在我们可以在表上的BEFORE INSERT触发器中使用该序列. CREATE OR REPLACE TRIGGER test_trigger BEFORE INSERT ON test REFERENCING NEW AS NEW FOR EACH ROW BEGIN SELECT test_sequence.nextval INTO :NEW.ID FROM dual; END; / SQL> INSERT INTO test (name) VALUES ('Jon'); 1 row created. SQL> INSERT INTO test (name) VALUES (’Bork’); 1 row created. SQL> INSERT INTO test (name) VALUES (’Matt’); 1 row created. SQL> SELECT * FROM test; ID NAME ———- —————————— 1 Jon 2 Bork 3 Matt (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |