设置多图片表good_pic(中的商品id)为外键.参考goods商品表中的id,在删除商品的时候.一起删除多图片.

#商品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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值