Fout 121 betekent dat er een externe sleutelbeperkingsfout is. Aangezien u InnoDB gebruikt, kunt u SHOW ENGINE INNODB STATUS
gebruiken na het uitvoeren van de mislukte query om een uitleg te krijgen in de LATEST FOREIGN KEY ERROR
sectie. Nadat ik je SQL zelf heb uitgevoerd, krijg ik dit:
------------------------
LATEST FOREIGN KEY ERROR
------------------------
101210 14:55:50 Error in foreign key constraint creation for table `regula`.`Reservation`.
A foreign key constraint of name `regula`.`prjId`
already exists. (Note that internally InnoDB adds 'databasename'
in front of the user-defined constraint name.)
Note that InnoDB's FOREIGN KEY system tables store
constraint names as case-insensitive, with the
MySQL standard latin1_swedish_ci collation. If you
create tables or databases whose names differ only in
the character case, then collisions in constraint
names can occur. Workaround: name your constraints
explicitly with unique names.
Kortom, u moet uw prjId-beperkingsnaam een unieke naam geven in de laatste tabel. Namen van beperkingen/vreemde sleutels zijn globaal voor een database, dus ze kunnen niet opnieuw worden gebruikt in verschillende tabellen. Verander gewoon de laatste
CONSTRAINT `prjId`
naar
CONSTRAINT `prjId2`