2016-03-25 44 views
0

Oracle sql geliştiricisi kullanıyorum.oracle sql dev: SQL Hatası: ORA-00905: eksik anahtar kelime 00905. 00000 - "anahtar kelime eksik"

Aşağıdaki kodu çalıştırırken belirsiz bir sondaj hatası alıyorum.

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

hatadır:

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

lütfen tavsiye.

+1

DB2 etiketleri eksik – TheGameiswar

cevap

0

bir yabancı anahtar kısıtlaması için doğru sözdizimi şöyledir:

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

Sen REFERENCES anahtar kelime ve (yukarıda yanıtında doğru olmayabilir) sonradan uygun tablo/sütun eksik.

Bu en az bir hatadır.

+0

eksiktir. Teşekkürler. Yukarıdaki kodu MariaDb'de uygulamak için gereken herhangi bir sözdizimsel değişiklik var mı? – user3650571

+0

@ user3650571. . . MariaDB - çok yakın bir yaklaşıma - MySQL ile tam olarak aynı sözdizimini kullanır. Her durumda, bu ANSI standart sözdizimi ve birçok veritabanı tarafından desteklenir. –

İlgili konular