2016-07-01 42 views
0
CREATE TABLE passager 
(
codePassager NUMBER(38,0) CONSTRAINT passager_code_pk  PRIMARY KEY, 
nom    VARCHAR2(15) CONSTRAINT passager_nom_nn   NOT NULL, 
prenom   VARCHAR2(15) CONSTRAINT passager_prenom_nn  NOT NULL, 
adresse   VARCHAR2(50) CONSTRAINT passager_adresse  NOT NULL, 
telephone  VARCHAR2(10) CONSTRAINT passager_tel   NOT NULL, 
ville   VARCHAR2(20) CONSTRAINT passager_ville   NOT NULL, 
pays   VARCHAR2(20) CONSTRAINT passager_pays   NOT NULL, 
status   VARCHAR2(1)  CONSTRAINT passager_status   NOT NULL 
); 

CREATE TABLE reservation 
(
codePassager NUMBER(38,0) CONSTRAINT passager_reservation_codePsg REFERENCES passager(codePassager), 
codeReservation NUMBER(38,0) CONSTRAINT reservation_pk   PRIMARY KEY (codePassager, codeReservation), 
statusReservation VARCHAR2(1) CONSTRAINT reservation_status  NOT NULL, 
dateReservation VARCHAR2(8) CONSTRAINT reservation_date  NOT NULL 
); 

创建表的Oracle告诉我,我有一个错误:ORA-00907,而在Oracle 11g中

ORA-00907 on line "codeReservation NUMBER(38,0) CONSTRAINT reservation_pk PRIMARY KEY (codePassager, codeReservation),"

我花2小时来寻找一个答案,还是不明白是什么问题。有人能帮助我吗?

回答

1

由于主键约束不在单个列上,因此需要单独创建,而不是作为列定义的一部分。

CREATE TABLE reservation 
(
    codePassager NUMBER(38,0) CONSTRAINT passager_reservation_codePsg REFERENCES passager(codePassager), 
    codeReservation NUMBER(38,0) , 
    statusReservation VARCHAR2(1) CONSTRAINT reservation_status  NOT NULL, 
    dateReservation VARCHAR2(8) CONSTRAINT reservation_date  NOT NULL, 
    CONSTRAINT reservation_pk  PRIMARY KEY (codePassager, codeReservation) 
); 
+0

它的工作原理。非常感谢。我非常感谢这一点。愿力量,爱和繁荣永远伴随着你。 –