Zoals jullie eerder hebben kunnen lezen ben ik een database op aan het zetten aan de hand van MySQL met InnoDB. Na wat prutswerk is dit goed gelukt.
Nadat ik mijn database had aangemaakt was het tijd voor tables. Dit ging echter niet goed. Er zijn 2 tables, te weten "persoon" en "tekening". Persoon heeft als primary key het veld "gebr_id" en dat is een automatisch ophogende interger.
Tekening heeft als primary key "tek_id" en een veld "owner" wat een foreign key van persoon(gebr_id) is.
Alles goed en wel, het lukt me niet om de table "tekening" aan te maken. Ik krijg dan foutmelding 1005/errno 150.
Quote van de MySQL site:
FOREIGN KEY (owner) REFERENCES PERSOON(gebr_id)
Wat doe ik hier fout? Uit de quote kun je concluderen dat
1. ik een statement ADD[Constraint symbol] moet toepassen.... wat is dit?
2. ik een create index moet doorvoeren... wat is dit?
Sorry dat ik een beetje knullig alles formuleer, dit is niet echt mijn vakgebied. Bij voorbat dank
.
Nadat ik mijn database had aangemaakt was het tijd voor tables. Dit ging echter niet goed. Er zijn 2 tables, te weten "persoon" en "tekening". Persoon heeft als primary key het veld "gebr_id" en dat is een automatisch ophogende interger.
Tekening heeft als primary key "tek_id" en een veld "owner" wat een foreign key van persoon(gebr_id) is.
Alles goed en wel, het lukt me niet om de table "tekening" aan te maken. Ik krijg dan foutmelding 1005/errno 150.
Quote van de MySQL site:
De foreign key heb ik als volgt gedefinieerd:If MySQL gives the error number 1005 from a CREATE TABLE statement, and the error message string refers to errno 150, then the table creation failed because a foreign key constraint was not correctly formed. Similarly, if an ALTER TABLE fails and it refers to errno 150, that means a foreign key definition would be incorrectly formed for the altered table.
Starting from version 3.23.50 InnoDB allows you to add a new foreign key constraint to a table through
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol] FOREIGN KEY (...) REFERENCES anothertablename(...)
Remember to create the required indexes first, though. In InnoDB versions < 3.23.50 ALTER TABLE or CREATE INDEX should not be used in connection with tables which have foreign key constraints or which are referenced in foreign key constraints: Any ALTER TABLE removes all foreign key constrainst defined for the table. You should not use ALTER TABLE to the referenced table either, but use DROP TABLE and CREATE TABLE to modify the schema. When MySQL does an ALTER TABLE it may internally use RENAME TABLE, and that will confuse the foreign key costraints which refer to the table. A CREATE INDEX statement is in MySQL processed as an ALTER TABLE, and these restrictions apply also to it.
FOREIGN KEY (owner) REFERENCES PERSOON(gebr_id)
Wat doe ik hier fout? Uit de quote kun je concluderen dat
1. ik een statement ADD[Constraint symbol] moet toepassen.... wat is dit?
2. ik een create index moet doorvoeren... wat is dit?
Sorry dat ik een beetje knullig alles formuleer, dit is niet echt mijn vakgebied. Bij voorbat dank