Beste php-ers,

Ik probeer nu al een tijdje een simpele foreign key aan te maken maar steeds krijg ik een errornummer 150 terug van mysql.

Allebei de tabellen zijn leeg en bevatten dus geen records:


CREATE TABLE `ban` (
  `ban_id` int(11) NOT NULL,
  `ban_gebruiker_id` int(11) NOT NULL,
  PRIMARY KEY  (`ban_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



CREATE TABLE `gebruikers` (
  `gebruikers_id` int(11) NOT NULL,
  PRIMARY KEY  (`gebruikers_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



Ik voer dit uit:

ALTER TABLE gebruikers ADD FOREIGN KEY(gebruikers_id) REFERENCES ban(ban_gebruikers_id) ON DELETE SET NULL ON UPDATE CASCADE



Vervolgens krijg ik deze error:
#1005 - Can't create table '.\test\#sql-f6c_12af.frm' (errno: 150)

Waarom krijg ik toch die error te zien?
Can't create table '.\test\#sql-f6c_12af.frm'

Vind je de tablename niet een beetje vreemd?
Nee want die heb ik aangemaakt om te testen. tablename is dus test en heeft 2 tabellen.
Dit is de tabalname die jij blijkbaar wilt createn:
.\test\#sql-f6c_12af.frm
Ik wil helemaal geen tabelname aanmaken. Ik wil een foreign key aanmaken.
op een delete call zet je em op NULL terwijl je fields NOT NULL zijn, kun je de NOT NULL eigenschappen eruithalen en kijken wat ie dan zegt?
Bedankt voor je antwoord maar dat helpt ook helaas niet. Ik blijf dezelfde error krijgen.
Probeer eens MyISAM in plaats van InnoDB. zo werkt ie bij mij wel;

drop table ban;
drop table gebruikers;

CREATE TABLE `ban` (
`ban_id` int(11),
`ban_gebruiker_id` int(11),
PRIMARY KEY (`ban_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



CREATE TABLE `gebruikers` (
`gebruikers_id` int(11),
PRIMARY KEY (`gebruikers_id`),
foreign key (gebruikers_id) references
ban(ban_gebruiker_id) on delete set null on update cascade
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Bedankt het werkt. Alleen in die link staat dit:

•Both tables must be InnoDB tables and they must not be TEMPORARY tables.

Dus ik had ze InnoDB gemaakt maar het moet dus MyIsam zijn. Waarom staat er dan InnoDB?
MyISAM heeft volgens mij geen foreignkeys.

Reageren