Ich habe die folgenden Tabellen in einer DB:MySQL - fügen Sie Indizes, Link-Tabellen
CREATE TABLE `items_link` (
`upc` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`upc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Dann wird eine weitere Tabelle:
CREATE TABLE `mws_data` (
`ItemID` float NOT NULL AUTO_INCREMENT,
`Status_response` varchar(15) DEFAULT '',
`Id` varchar(15) NOT NULL DEFAULT '',
`IdType` varchar(7) NOT NULL DEFAULT '',
`IsMultASIN` tinyint(1) DEFAULT '0',
`ASIN` varchar(20) DEFAULT '',
`BrandAmazon` varchar(150) DEFAULT '',
`Title` varchar(1000) DEFAULT '',
`ProductGroup` varchar(150) DEFAULT '',
`ImgURL` varchar(500) DEFAULT '',
`PkgHeight` float DEFAULT NULL,
`PkgWidth` float DEFAULT NULL,
`PkgLength` float DEFAULT NULL,
`PkgWeight` float DEFAULT NULL,
`PackageQuantity` float DEFAULT NULL,
`Unique_Entry_Id` datetime NOT NULL,
PRIMARY KEY (`ItemID`)
) ENGINE=InnoDB AUTO_INCREMENT=116973 DEFAULT CHARSET=utf8
Nun, ich versuche, das Feld 'Id' gesetzt von 'mws_data' zu einem Fremdschlüssel, dass Verweise 'upc' von 'items_link':
alter table mws_data add foreign key (Id) references items_link.upc;
jedoch dieser Fehler zeigt:
Error Code: 1215. Cannot add foreign key constraint
Ich habe für Werte in 'mws_data.id' versucht suchen, die nicht in 'items_link.id' sind, erhielt aber 0 Ergebnisse:
select Id
from mws_data
where id not in (select upc from items_link);
würden Anregungen sehr dankbar!
Sie eigentlich gar nicht haben um den Primärschlüssel in der Quelltabelle anzugeben. alter table mws_data add constraint ... Fremdschlüssel (Id) referenzen items_link; wird nur funktionieren. –
Perfekt, vielen Dank, das hat super funktioniert! –