1

我正在尝试创建一个 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;
4

1 回答 1

4

您的意图是正确的,但语法上的用法不是。

您需要创建序列作为第一步,

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)
);

PS 如果您使用的是 12c 及更高版本,请考虑使用identitycolumn,这是一个不错的功能。我正在为您提供链接

于 2020-09-20T04:43:32.923 回答