![]() |
Jag fattar inte riktigt varför detta inte går, vet inte om jag missar något, men visst ska väl två fält kunna referera till samma fält i en annan tabell? Och auto_increment räknas väl inte som data type på det sättet att det måste vara samma på både FK och det som FK pekar på?
#1005 - Can't create table './test/crm9_person.frm' (errno: 150) Kod:
DROP TABLE IF EXISTS `crm9_address`; |
Kolla checkarna här: http://sql-info.de/mysql/referential-integrity.html
|
Kan inte detta något vidare jag skulle prova med 2 constraints; 1 på varje.
Jag provade med följande. Korrekt, men Du kanske inte uppnår Dina syften. DROP TABLE IF EXISTS `crm9_address`; CREATE TABLE `crm9_address` ( `id` int(255) NOT NULL auto_increment, `address1` varchar(255) NOT NULL default '', `address2` varchar(255) NOT NULL default '', `zipcode` varchar(7) NOT NULL default '', `city` varchar(40) NOT NULL default '', `country` varchar(40) NOT NULL default '', `mail` varchar(255) NOT NULL default '', `gatecode` text, `notes` text, PRIMARY KEY (`id`) )ENGINE=INNODB; DROP TABLE IF EXISTS `crm9_person`; CREATE TABLE `crm9_person` ( `id` int(255) NOT NULL auto_increment, `companyname` varchar(255) NOT NULL default '', `contactname` varchar(255) NOT NULL default '', `securitynumber` varchar(12) NOT NULL default '', `cellphone` varchar(16) NOT NULL default '', `telephone` varchar(16) NOT NULL default '', `telefax` varchar(16) NOT NULL default '', `on_call_address` int(255) NOT NULL default '0', `invoice_address` int(255) NOT NULL default '0', `custtype` int(11) default '3', `granskad` int(255) default NULL, `fakturatyp` int(10) default NULL, `notes` text, PRIMARY KEY (`id`), INDEX (on_call_address, invoice_address), CONSTRAINT person_has_address_for_ONK FOREIGN KEY (`on_call_address`) REFERENCES crm9_address(id) ON UPDATE CASCADE ON DELETE RESTRICT , CONSTRAINT person_has_address_for_INV FOREIGN KEY ( `invoice_address`) REFERENCES crm9_address(id) ON UPDATE CASCADE ON DELETE RESTRICT ) ENGINE=INNODB AUTO_INCREMENT=20; HAVE IT! |
Om det skulle lösa problemen så fundera över om du kan klara dig utan dina FOREIGN KEYs. Vet att FOREIGN KEY låter bra i teorin, men behövs sällan i praktiken. :-)
|
Citat:
|
Alla tider är GMT +2. Klockan är nu 12:38. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson