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`;
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 FOREIGN KEY (`on_call_address`, `invoice_address`)
REFERENCES crm9_address(id, id) ON UPDATE CASCADE ON DELETE RESTRICT )ENGINE=INNODB AUTO_INCREMENT=20;
Tacksam för hjälp!