创建表上的SQL语法错误

时间:2015-09-01 17:24:06

标签: sql ms-access

我必须在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

2 个答案:

答案 0 :(得分:1)

错误在于:

leveranciernr   integer is null,

这不是标准的SQL。如果您希望该属性可以采用空值,那么您应该写:

leveranciernr   integer not null,

默认情况下,除非指定not null,否则所有属性都可以具有空值。

答案 1 :(得分:0)

我看到你删除了你的评论FutbolFan,我仍然想给你一个更新,我删除了外键约束,现在我得到了错误:处理命令时发生了一个或多个错误,我开始认为任何SQL正在和我一起玩....无论如何我必须在午夜之前分配我的作业,所以我想我要上传我的sql脚本,我希望我的老师可以解释出了什么问题,谢谢你的输入,如果我修好了问题明天,然后我会在这里发布答案!