无法找出我的SQL表中哪些数据类型不正确

问题描述

我正在尝试创建一个sql表,但是一直出现此错误

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