问题描述
Error report -
ORA-00902: invalid datatype
00902. 00000 - "invalid datatype"
这是我的代码。
CREATE TABLE viewers
(
user_id SEQUENCE PRIMARY KEY,first_name VARCHAR2(30),last_name VARCHAR2(40) NOT NULL,email VARCHAR2(40) CHECK(LENGTH(email) > 8),dob DATE,CONSTRAINT contact_email UNIQUE (email)
);
CREATE SEQUENCE user_id_seq
START WITH 100000 INCREMENT BY 1
MINVALUE 100000 MAXVALUE 999999;
解决方法
您的意图是正确的,但语法上的用法却不正确。
您需要先创建序列,
create sequence seq_user_id;
CREATE TABLE viewers
(
user_id number default seq_user_id.nextval PRIMARY KEY,first_name VARCHAR2(30),last_name VARCHAR2(40) NOT NULL,email VARCHAR2(40) CHECK(LENGTH(email) > 8),DOB DATE,CONSTRAINT contact_email UNIQUE (email)
);
P.S。如果您使用的是12c及更高版本,请考虑使用
identity
列,这是一个不错的功能。我正在向您提供link。