-4

你能帮我么?我有同样的问题,我无法解决

create table minimarketi (id number(6) constraint min_id_pk primary key
  , ime varchar2(40) not null
  , adresa varchar2(100)
  , grad varchar2(30)
  );

create table zahtjevi (id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , datum_izdavanja date
  , constraint zaht_pk primary key(id_minimarketa, rbr_zahtjeva)
  , constraint zaht_min_fk foreign key(id_minimarketa) references minimarketi(id)
  );

create table artikli (sifra number(6)
  , constraint art_sifra_pk primary key(sifra)
  , naziv varchar2(100) not null
  );

create table stavke_zahtjeva (id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , sifra_artikla number(6)
  , kolicina number(6) not null
  , constraint stavke_zahtjeva_pkl
       primary key(id_minimarketa, rbr_zahtjeva, sifra_artikla)
  , constraint stav_zaht_idrbr_fk
     foreign key(id_minimarketa, rbr_zahtjeva)
     references zahtjevi(id_minimarketa, rbr_zahtjeva)
  , constraint stav_art_fk 
     foreign key(sifra_artikla)
     references artikli(sifra)
  );

create table isporuke (rbr_isporuke number(6)
  , id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , datum izdavanja date
  , constraint isporuke_pk
      primary key(rbr_isporuke, id_minimarketa, rbr_zahtjeva)
  , constraint ispo_zaht_fk
       foreign key(id_minimarketa, rbr_zahtjeva)
       references zahtjevi(id_minimarketa, rbr_zahtjeva)
  );

这张桌子isporuke我有907问题?

4

2 回答 2

2

问题在于 table isporuke。您正在创建一个列的表中的空间。

你有:

 datum izdavanja date, 

但你应该有:

 datum_izdavanja date, 

所以你的脚本将是:

create table isporuke 
(
  rbr_isporuke number(6), 
  id_minimarketa number(6), 
  rbr_zahtjeva number(6), 
  datum_izdavanja date, 
  constraint isporuke_pk primary key(rbr_isporuke, id_minimarketa, rbr_zahtjeva),
  constraint ispo_zaht_fk foreign key(id_minimarketa, rbr_zahtjeva) 
    references zahtjevi(id_minimarketa, rbr_zahtjeva)
);

请参阅带有演示的 SQL Fiddle

我通过将每个表单独添加到脚本中以确保它可以编译来发现这一点。通过单独运行每一个,您可以消除正在运行的代码并缩小错误范围。

于 2013-01-16T22:17:52.213 回答
1

以下是如何调试这些问题。

首先,一次尝试每个语句。与其尝试所有五个 CREATE TABLE 语句,不如尝试第一个,看看它是否通过。然后尝试下一个。你把它缩小到某个陈述。

现在您知道哪个语句缺少括号。查看左括号,并查看对应的右括号在哪里。它和你想象的相符吗?继续遍历所有开头的括号并找到其匹配的括号。最终你会发现没有匹配的结束括号的开始括号。

此外,清理您的代码,使其不会全部在一行中。调试这个要困难得多:

create table minimarketi (id number(6) constraint min_id_pk primary key, ime varchar2(40) not null, adresa varchar2(100), grad varchar2(30));

但是当它像这样格式化时,更容易看到:

create table minimarketi (
    id number(6) constraint min_id_pk primary key,
    ime varchar2(40) not null,
    adresa varchar2(100),
    grad varchar2(30)
);
于 2013-01-16T22:17:38.580 回答