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
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