#商品id 主表
CREATE TABLE `goods` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) TYPE=InnoDB;
#商品多图片从表
CREATE TABLE `good_pic` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`goodid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`pic` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX (`goodid`),
FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE
) TYPE=InnoDB;
INSERT INTO `goods`
(`id`,`data`)
VALUES
('1', '奥迪'),
('2', '长安'),
('3', '路虎');
INSERT INTO `good_pic`
(`id`,`goodid`,`pic`)
VALUES
('1', '1', 'ehjhg.jpg'),
('2', '1', 'wqer.jpg'),
('3', '1', '1wer.jpg'),
('4', '2', 'qwer.jpg'),
('5', '2', 'fgd.jpg'),
('6', '2', 'asdf.jpg'),
('7', '3', 'ed.jpg'),
('8', '3', 'sdfew.jpg'),
('9', '3', 'ewe.jpg');
delete from goods where id=2;
无法修改商品id,因为图片表设置为外键(指定自己一个字段,类型要相同).参考了商品goods表中的id,在删除的时候
FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE
所以也无法直接删除掉商品表,可以先把pic图片表外键删除.或者删除整个pic图片表,这样就没有制约到商品表了
drop table goods
设置多图片表good_pic(中的good_id)为外键.参考goods商品表中的id,在删除商品的时候.一起删除多图片.
01 商品和图片表引擎都必须设置为innodb才起作用
02 图片表.商品id字段类型.复制商品id的类型(必须一样)
03 图片表必须加索引 INDEX (`goodid`),
04 FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE
CREATE TABLE `goods` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) TYPE=InnoDB;
#商品多图片从表
CREATE TABLE `good_pic` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`goodid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`pic` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX (`goodid`),
FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE
) TYPE=InnoDB;
INSERT INTO `goods`
(`id`,`data`)
VALUES
('1', '奥迪'),
('2', '长安'),
('3', '路虎');
INSERT INTO `good_pic`
(`id`,`goodid`,`pic`)
VALUES
('1', '1', 'ehjhg.jpg'),
('2', '1', 'wqer.jpg'),
('3', '1', '1wer.jpg'),
('4', '2', 'qwer.jpg'),
('5', '2', 'fgd.jpg'),
('6', '2', 'asdf.jpg'),
('7', '3', 'ed.jpg'),
('8', '3', 'sdfew.jpg'),
('9', '3', 'ewe.jpg');
delete from goods where id=2;
无法修改商品id,因为图片表设置为外键(指定自己一个字段,类型要相同).参考了商品goods表中的id,在删除的时候
FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE
所以也无法直接删除掉商品表,可以先把pic图片表外键删除.或者删除整个pic图片表,这样就没有制约到商品表了
drop table goods
设置多图片表good_pic(中的good_id)为外键.参考goods商品表中的id,在删除商品的时候.一起删除多图片.
01 商品和图片表引擎都必须设置为innodb才起作用
02 图片表.商品id字段类型.复制商品id的类型(必须一样)
03 图片表必须加索引 INDEX (`goodid`),
04 FOREIGN KEY (`goodid`) REFERENCES `goods`(`id`) ON DELETE CASCADE