PDA

Bekijk Volledige Versie : mySQL / innodb probleem met FK



matthijsdezwart@gmail.com
03/04/09, 15:25
Hoi,

ik ben innodb aan het testen ivm de mogelijkheid FK te gebruiken. Een
eerste test is ook gelukt, maar een andere test lukt niet.

Ik heb twee innodb tables aangemaakt:


CREATE TABLE `table1`
(
`Table1_id` int(11) unsigned NOT NULL
auto_increment,
`name` varchar(20) collate latin1_general_ci NOT
NULL,
PRIMARY KEY
(`Table1_id`),
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
COLLATE=latin1_general_ci;



CREATE TABLE `table2`
(
`Table2_id` int(11) unsigned NOT NULL
auto_increment,
`name_id` int(11) unsigned NOT
NULL,
`other_info_id` int(11) NOT
NULL,
`some_more` varchar(10) collate latin1_general_ci NOT
NULL,
PRIMARY KEY
(`Table2_id`),
KEY `name_id`
(`name_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
COLLATE=latin1_general_ci;


vervolgens wil ik met deze query een PK toevoegen:

alter table testinnodb.table2
add constraint table1_Table1_id_table2_name_id_fk
foreign key (name_id)
references table1(Table1_id)
on delete set null
on update cascade;

Dan krijg ik:
Error Code: 1005
Cant't create table '.\testinnodb\#sql-370_1.frm' (errno: 150)

Probleem is dat ik in staat moet zijn om bij bestaande tabellen een FK
te add-en, omdat ik een bestaande structuur moet aanpassen.

Iemand een idee waarom bovenstaande niet werkt? (versie 5.0.51a)
Groeten,

Matthijs

matthijsdezwart@gmail.com
06/04/09, 11:05
On 3 apr, 15:20, matthijsdezw...@gmail.com wrote:
> Hoi,
>
> ik ben innodb aan het testen ivm de mogelijkheid FK te gebruiken. Een
> eerste test is ook gelukt, maar een andere test lukt niet.

Ben er achter....
"on delete set null" terwijl: name_id` int(11) unsigned NOT NULL...
oeps ;-)