我必须在SQL中为学校作业编写一些Create表语句,之后我必须在AnySQL Maestro中加载SQL文件,当我执行脚本时,它在第3个CREATE TABLE语句中给出了SYNTAX错误(create table BESTELLING)我无法弄清楚我做错了什么。 我希望有人可以帮助我。
create table INKOPER(
inkoperID char (2),
naam varchar(128),
constraint pk_inkoper
primary key (inkoperID)
); go
create table ARTIKEL(
artikelnr varchar(5),
omschrijving varchar(255),
prijs decimal(8,2),
constraint pk_artikel
primary key (artikelnr)
);go
create table LEVERANCIER(
leveranciernr varchar(3),
naam varchar(20),
adres varchar(50),
woonplaats varchar(20),
telefoon char(11),
constraint pk_leverancier
primary key (leveranciernr)
); go
create table BESTELLING(
bestelnr integer,
leveranciernr integer is null,
inkoperID char(2),
besteldatum date,
leverdatum date,
constraint pk_bestelling
primary key (bestelnr),
constraint fk_bestelling_leverancier
foregin key (leveranciernr)
references leverancier(leveranciernr)
constraint fk_bestelling_inkoper
foregin key (inkoperID)
references inkoper(inkoperID)
); go
create table BESTELREGEL(
bestelnr integer,
artikelnr varchar(5),
aantal integer,
constraint pk_bestelling_artikel
primary key (bestelnr,artikelnr),
constraint fk_bestelling_bestelregel
foregin key (bestelnr)
references bestelling(bestelnr)
constraint fk_artikel_bestelregel
foreign key (artikelnr)
references artikel(artikelnr)
); go
答案 0 :(得分:1)
错误在于:
leveranciernr integer is null,
这不是标准的SQL。如果您希望该属性可以采用空值,那么您应该写:
leveranciernr integer not null,
默认情况下,除非指定not null
,否则所有属性都可以具有空值。
答案 1 :(得分:0)
我看到你删除了你的评论FutbolFan,我仍然想给你一个更新,我删除了外键约束,现在我得到了错误:处理命令时发生了一个或多个错误,我开始认为任何SQL正在和我一起玩....无论如何我必须在午夜之前分配我的作业,所以我想我要上传我的sql脚本,我希望我的老师可以解释出了什么问题,谢谢你的输入,如果我修好了问题明天,然后我会在这里发布答案!