Reputation: 145
I'm trying to create a database with products in it, and i've created a table that join products and stores, but my "CREATE TABLE" sentence don't work, I get a 1005 error with 150 errno, I've searched on different website, checked the case, the type, and nothing works.
Here's the code
CREATE TABLE IF NOT EXISTS `products` (
`barcode` bigint(20) NOT NULL,
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Unnamed product',
`allerg` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'z',
`description` text CHARACTER SET utf8 COLLATE utf8_bin,
CONSTRAINT pk_products PRIMARY KEY (`barcode`)
)
CREATE TABLE IF NOT EXISTS `stores` (
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Unnamed store',
`city` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Not specified',
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
CONSTRAINT pk_stores PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `contain` (
`barcode` bigint(20) NOT NULL,
`id` bigint(20) unsigned NOT NULL,
CONSTRAINT pk_barcode PRIMARY KEY (`barcode`,`id`),
CONSTRAINT fk_bc FOREIGN KEY (`barcode`)
REFERENCES `products`(`barcode`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_id FOREIGN KEY (`id`)
REFERENCES `stores`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
)
Does some one see anything?
Thank you.
Upvotes: 0
Views: 50
Reputation: 261
CREATE TABLE IF NOT EXISTS `products` (
`barcode` bigint(20) NOT NULL,
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Unnamed product',
`allerg` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'z',
`description` text CHARACTER SET utf8 COLLATE utf8_bin,
CONSTRAINT pk_products PRIMARY KEY (`barcode`)
);
CREATE TABLE IF NOT EXISTS `stores` (
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Unnamed store',
`city` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'Not specified',
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
CONSTRAINT pk_stores PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `contain` (
`barcode` bigint(20) NOT NULL,
`id` bigint(20) unsigned NOT NULL,
CONSTRAINT pk_barcode PRIMARY KEY (`barcode`,`id`),
CONSTRAINT fk_bc FOREIGN KEY (`barcode`)
REFERENCES `products`(`barcode`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_id FOREIGN KEY (`id`)
REFERENCES `stores`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
Upvotes: 1