2016-03-25 5 views
0

Я использую разработчик oracle sql.oracle sql dev: SQL Ошибка: ORA-00905: отсутствует ключевое слово 00905. 00000 - «отсутствует ключевое слово»

При выполнении следующего кода я получаю смутную ошибку звучания.

CREATE TABLE students 
(
student_id INT NOT NULL, 
username VARCHAR2(30), 
email VARCHAR2(80), 
password VARCHAR2(30), 
f_name VARCHAR2(30), 
l_name VARCHAR2(30), 
bio VARCHAR2(350), 
dp VARCHAR2(15), 
is_suspended CHAR(1) DEFAULT '0' NOT NULL, 
suspension_reason VARCHAR2(50), 
role_id INT NOT NULL, 
created_on TIMESTAMP DEFAULT SYSDATE NOT NULL, 
updated_on TIMESTAMP, 
is_active CHAR(1) DEFAULT '1' NOT NULL, 
city VARCHAR2(15) NOT NULL, 
state VARCHAR2(15) NOT NULL, 
zip VARCHAR(6) NOT NULL, 
b_day DATE, 
CONSTRAINT students_id_pk PRIMARY KEY(student_id), 
CONSTRAINT students_role_id_fk FOREIGN KEY(role_id), 
CONSTRAINT students_username_uq UNIQUE(username), 
CONSTRAINT students_email_uq UNIQUE(email) 
); 

Ошибка:

Error report - 
SQL Error: ORA-00905: missing keyword 
00905. 00000 - "missing keyword" 
*Cause:  
*Action: 

пожалуйста совет.

+1

Теги DB2 отсутствуют – TheGameiswar

ответ

0

Правильный синтаксис для ограничения внешнего ключа является:

CONSTRAINT students_role_id_fk FOREIGN KEY(role_id) REFERENCES roles(role_id) 
----------------------------------------------------^ 

Вы пропускаете REFERENCES ключевое слово и соответствующую таблицу/столбец впоследствии (который не может быть правильным в ответе выше).

Это хотя бы одна ошибка.

+0

Это единственная ошибка. Благодарю. есть ли какие-либо синтаксические изменения, которые мне нужно сделать для реализации вышеуказанного кода в MariaDb? – user3650571

+0

@ пользователь3650571. , , MariaDB - в очень близком приближении - использует точно такой же синтаксис, как MySQL. В любом случае это стандартный синтаксис ANSI и поддерживается многими базами данных. –

Смежные вопросы