for composite FOREIGN KEY, the syntax is
FOREIGN KEY (Gebouw, Verdieping, Lokaal)
REFERENCES Lokalen(Gebouw, Verdieping, Lokaal)
I would strongly advise to use a simple surrogate key (like an autoincrement id), as PK in Localen
and FK in Reserveringen
).
To avoid errors :
DROP TABLE IF EXISTS Lokalen;
DROP TABLE IF EXISTS Reserveringen;
CREATE TABLE Lokalen(
Gebouw VARCHAR(20) not null,
Verdieping INT not null,
Lokaal VARCHAR (3) not null,
Beweging BOOLEAN,
Computer BOOLEAN,
primary key (Gebouw, Verdieping, Lokaal));
CREATE TABLE Reserveringen(
Gebouw VARCHAR(20) not null,
Verdieping INT not null,
Lokaal VARCHAR (3) not null,
Begintijd TIME not null,
Eindtijd TIME,
Datum DATE not null,
Reserveringsnummer int not null,
primary key (Reserveringsnummer),
FOREIGN KEY (Gebouw, Verdieping, Lokaal)
REFERENCES Lokalen(Gebouw, Verdieping, Lokaal));
the way with surrogate keys
DROP TABLE IF EXISTS Lokalen;
DROP TABLE IF EXISTS Reserveringen;
CREATE TABLE Lokalen(
Id Int Not null auto_increment PRIMARY KEY,
Gebouw VARCHAR(20) not null,
Verdieping INT not null,
Lokaal VARCHAR (3) not null,
Beweging BOOLEAN,
Computer BOOLEAN);
CREATE TABLE Reserveringen(
Id Int not null auto_increment PRIMARY KEY,
LokalenId Int not null,
Begintijd TIME not null,
Eindtijd TIME,
Datum DATE not null,
Reserveringsnummer int not null,
FOREIGN KEY (LokalenId)
REFERENCES Lokalen(Id));