#sql #oracle #database-sequence
#sql #Oracle #database-последовательность
Вопрос:
Я пытаюсь создать таблицу 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;
Комментарии:
1. Доступные типы данных перечислены здесь .
SEQUENCE
отсутствует в списке.
Ответ №1:
Ваше намерение правильное, но синтаксическое использование — нет.
Вам необходимо создать последовательность в качестве первого шага,
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 и выше, рассмотрите возможность использования
identity
column, что является хорошей функцией. Я предоставляю вам ссылку.