[MySQL] error 105 can't create table
![Bericht Bericht](./styles/prosilver/imageset/icon_post_target.gif)
Ik ben bezig om relaties te leggen in een mysql database. Alleen loop ik heel de tijd tegen een hardnekkig probleem aan.
Situatie
We maken een website waarop de klant auto's en onderdelen kan bestellen. Dit wordt gemaakt in php/mysql.
Alles gaat uit van de klant. De klant heeft één of meer orders. Op de order kunnen meerdere onderdelen en/of autos staan.
SQL
[syntax="taal"]CREATE TABLE `klant` (
`klant_ID` int(10) unsigned NOT NULL auto_increment,
`k_voornaam` varchar(45) NOT NULL default '',
`k_achternaam` varchar(45),
`k_straat` varchar(50),
`k_postcode` varchar(10),
`k_woonplaats` varchar(50),
`k_telefoon` int(10) unsigned,
`k_geboortedatum` date,
PRIMARY KEY (`klant_ID`),
INDEX (`klant_ID`)
) ENGINE=InnoDB;[/syntax]
[syntax="taal"]CREATE TABLE `verkoper` (
`verkoper_ID` int(10) unsigned NOT NULL auto_increment,
`v_voornaam` varchar(45) NOT NULL default '',
`v_achternaam` varchar(45),
`v_straat` varchar(50),
`v_postcode` varchar(10),
`v_woonplaats` varchar(45),
`v_telefoon` int(10) unsigned,
`v_geboortedatum` date,
`v_functie` varchar(45),
`v_afdeling` varchar(45),
`v_indienst` date,
`v_uitdienst` date,
`v_sofinummer` int(10),
PRIMARY KEY (`verkoper_ID`),
INDEX (`verkoper_ID`)
) ENGINE=InnoDB;[/syntax]
Er bestaat ook nog een tabel autos en artikelen die op dezelfde manier in elkaar steken. De problemen beginnen bij de tabellen order en orderregels.
[syntax="taal"]CREATE TABLE `order` (
`order_ID` int(10) unsigned NOT NULL auto_increment,
`FK_klant_ID` int(10),
`FK_verkoper_ID` int(10),
PRIMARY KEY (`order_ID`),
INDEX (`order_ID`),
KEY `FK_verkoper` (`FK_verkoper_ID`)
CONSTRAINT `klt` FOREIGN KEY (`FK_klant_ID`) REFERENCES `klant` (`klant_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;[/syntax]
[syntax="taal"]CREATE TABLE `orderregels` (
`FK_order_ID` int(10),
`FK_auto_ID` int(10),
`FK_artikel_ID` int(10),
`or_aantal` int(3),
`or_au_prijs` int(7),
`or_ar_prijs` int(7),
`or_btw` int(2),
`or_k_voornaam` varchar(45),
`or_k_achternaam` varchar(45),
`or_k_postcode` varchar(10),
`or_k_woonplaats` varchar(45),
KEY `FK_order` (`FK_order_ID`),
KEY `FK_auto` (`FK_auto_ID`),
KEY `FK_artikel` (`FK_artikel_ID`),
CONSTRAINT `ord` FOREIGN KEY (`FK_order_ID`) REFERENCES `order` (`order_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;[/syntax]
Wie ziet waar ik de mist in ga?
Situatie
We maken een website waarop de klant auto's en onderdelen kan bestellen. Dit wordt gemaakt in php/mysql.
Alles gaat uit van de klant. De klant heeft één of meer orders. Op de order kunnen meerdere onderdelen en/of autos staan.
SQL
[syntax="taal"]CREATE TABLE `klant` (
`klant_ID` int(10) unsigned NOT NULL auto_increment,
`k_voornaam` varchar(45) NOT NULL default '',
`k_achternaam` varchar(45),
`k_straat` varchar(50),
`k_postcode` varchar(10),
`k_woonplaats` varchar(50),
`k_telefoon` int(10) unsigned,
`k_geboortedatum` date,
PRIMARY KEY (`klant_ID`),
INDEX (`klant_ID`)
) ENGINE=InnoDB;[/syntax]
[syntax="taal"]CREATE TABLE `verkoper` (
`verkoper_ID` int(10) unsigned NOT NULL auto_increment,
`v_voornaam` varchar(45) NOT NULL default '',
`v_achternaam` varchar(45),
`v_straat` varchar(50),
`v_postcode` varchar(10),
`v_woonplaats` varchar(45),
`v_telefoon` int(10) unsigned,
`v_geboortedatum` date,
`v_functie` varchar(45),
`v_afdeling` varchar(45),
`v_indienst` date,
`v_uitdienst` date,
`v_sofinummer` int(10),
PRIMARY KEY (`verkoper_ID`),
INDEX (`verkoper_ID`)
) ENGINE=InnoDB;[/syntax]
Er bestaat ook nog een tabel autos en artikelen die op dezelfde manier in elkaar steken. De problemen beginnen bij de tabellen order en orderregels.
[syntax="taal"]CREATE TABLE `order` (
`order_ID` int(10) unsigned NOT NULL auto_increment,
`FK_klant_ID` int(10),
`FK_verkoper_ID` int(10),
PRIMARY KEY (`order_ID`),
INDEX (`order_ID`),
KEY `FK_verkoper` (`FK_verkoper_ID`)
CONSTRAINT `klt` FOREIGN KEY (`FK_klant_ID`) REFERENCES `klant` (`klant_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;[/syntax]
[syntax="taal"]CREATE TABLE `orderregels` (
`FK_order_ID` int(10),
`FK_auto_ID` int(10),
`FK_artikel_ID` int(10),
`or_aantal` int(3),
`or_au_prijs` int(7),
`or_ar_prijs` int(7),
`or_btw` int(2),
`or_k_voornaam` varchar(45),
`or_k_achternaam` varchar(45),
`or_k_postcode` varchar(10),
`or_k_woonplaats` varchar(45),
KEY `FK_order` (`FK_order_ID`),
KEY `FK_auto` (`FK_auto_ID`),
KEY `FK_artikel` (`FK_artikel_ID`),
CONSTRAINT `ord` FOREIGN KEY (`FK_order_ID`) REFERENCES `order` (`order_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;[/syntax]
Wie ziet waar ik de mist in ga?