&引用;缺少右括号“;错误-Oracle
创建此代码时:&引用;缺少右括号“;错误-Oracle,oracle,foreign-keys,ddl,Oracle,Foreign Keys,Ddl,创建此代码时: SQL> create table TRANSAKSI_9223( 2 ID_Transaksi number(13) 3 constraint idtransaksi_pk primary key, 4 Tgl_Transaksi date constraint tgl_notnull not null, 5 Total_harga float, 6 id_pembeli number(13), constraint fk_idpembeli
SQL> create table TRANSAKSI_9223(
2 ID_Transaksi number(13)
3 constraint idtransaksi_pk primary key,
4 Tgl_Transaksi date constraint tgl_notnull not null,
5 Total_harga float,
6 id_pembeli number(13), constraint fk_idpembeli references PEMBELI_9223(id_pembeli));
id_pembeli number(13), constraint fk_idpembeli references PEMBELI_9223(id_pembeli))
*
ERROR at line 6:
ORA-00907: missing right parenthesis
我该怎么办?您缺少列名
CONSTRAINT FK_PersonOrder FOREIGN KEY (columnename)
REFERENCES PEMBELI_9223(id_pembeli);
您缺少列名
CONSTRAINT FK_PersonOrder FOREIGN KEY (columnename)
REFERENCES PEMBELI_9223(id_pembeli);
应该是这样的:
CREATE TABLE transaksi_9223
(
id_transaksi NUMBER (13) CONSTRAINT idtransaksi_pk PRIMARY KEY,
tgl_transaksi DATE CONSTRAINT tgl_notnull NOT NULL,
total_harga FLOAT,
id_pembeli NUMBER (13)
CONSTRAINT fk_idpembeli
REFERENCES pembeli_9223 (id_pembeli)
);
即删除逗号,此处:
id_pembeli number(13), constraint fk_idpembeli
^
应该是这样的:
CREATE TABLE transaksi_9223
(
id_transaksi NUMBER (13) CONSTRAINT idtransaksi_pk PRIMARY KEY,
tgl_transaksi DATE CONSTRAINT tgl_notnull NOT NULL,
total_harga FLOAT,
id_pembeli NUMBER (13)
CONSTRAINT fk_idpembeli
REFERENCES pembeli_9223 (id_pembeli)
);
即删除逗号,此处:
id_pembeli number(13), constraint fk_idpembeli
^
你忘了说哪列是外键(我猜是id_pembeli)
你忘了说哪列是外键(我猜是id_pembeli)
正如其他人所指出的,您必须使用结尾处的
constraint…
语法重复FK列。在内联声明FK约束时,可以忽略它:
create table TRANSAKSI_9223(
ID_Transaksi number(13)
constraint idtransaksi_pk primary key,
Tgl_Transaksi date constraint tgl_notnull not null,
Total_harga float,
id_pembeli number(13) references PEMBELI_9223
);
请注意列定义后缺少的,
。您还可以使用该语法省略目标列。它将自动使用目标表的PK列
还可以包括约束名称:
create table TRANSAKSI_9223(
ID_Transaksi number(13)
constraint idtransaksi_pk primary key,
Tgl_Transaksi date constraint tgl_notnull not null,
id_pembeli number(13) constraint fk_idpembeli references PEMBELI_9223,
Total_harga float
);
同样,列定义后没有
,
。我将列移动到另一个位置,以便更清楚地表明这是列定义的一部分,而不是表末尾的约束 正如其他人所指出的,您必须使用结尾处的约束…
语法重复FK列。在内联声明FK约束时,可以忽略它:
create table TRANSAKSI_9223(
ID_Transaksi number(13)
constraint idtransaksi_pk primary key,
Tgl_Transaksi date constraint tgl_notnull not null,
Total_harga float,
id_pembeli number(13) references PEMBELI_9223
);
请注意列定义后缺少的,
。您还可以使用该语法省略目标列。它将自动使用目标表的PK列
还可以包括约束名称:
create table TRANSAKSI_9223(
ID_Transaksi number(13)
constraint idtransaksi_pk primary key,
Tgl_Transaksi date constraint tgl_notnull not null,
id_pembeli number(13) constraint fk_idpembeli references PEMBELI_9223,
Total_harga float
);
同样,列定义后没有
,
。我将列移动到另一个位置,以便更清楚地表明这是列定义的一部分,而不是表末尾的约束 这些行号真的是你代码的一部分吗?如果是这样,请删除它们,如果不清理问题中的代码,您可以尝试此方法<代码>创建表TRANSAKSI_9223(ID_TRANSAKSI编号(13)约束idtransaksi_pk主键,Tgl_TRANSAKSI日期约束Tgl_notnull notnull notnull,Total_harga float,ID_pembeli编号(13)约束fk_idpembeli引用pembeli_9223(ID_pembeli))代码>这些行号真的是代码的一部分吗?如果是这样,请删除它们,如果不清理问题中的代码,您可以尝试此方法<代码>创建表TRANSAKSI_9223(ID_TRANSAKSI编号(13)约束idtransaksi_pk主键,Tgl_TRANSAKSI日期约束Tgl_notnull notnull notnull,Total_harga float,ID_pembeli编号(13)约束fk_idpembeli引用pembeli_9223(ID_pembeli))代码>