3

我使用 MySql 并有两个表,master并且inventory. product_description现在我需要从master表字段插入更新库存表字段后的触发器product_description

例子:

主表:

pmid  -  product_name - product_description - price
1        tv                HD tv               10

库存表:

invid - pmid  - product_description - color
1        1                             black

触发器应从partmasterpmid = pmid 插入 product_description。

CREATE TABLE IF NOT EXISTS `master` (
  `pmid` int(11) NOT NULL AUTO_INCREMENT,
  `product_name` varchar(255) NOT NULL,
  `product_description` varchar(255) NOT NULL,
  `price` varchar(10) NOT NULL,
  PRIMARY KEY (`pmid`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;

CREATE TABLE IF NOT EXISTS `inventory` (
  `invid` int(11) NOT NULL AUTO_INCREMENT,
  `pmid` int(11) NOT NULL,
  `product_description` varchar(255) NOT NULL,
  `color` int(11) NOT NULL,
  PRIMARY KEY (`invid`),
  KEY `pmid` (`pmid`),   //foreign key master table//
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;

谢谢

4

1 回答 1

0
delimiter //
CREATE TRIGGER update_inventory AFTER INSERT ON master
FOR EACH ROW 
BEGIN
UPDATE inventory I SET I.product_description = new.product_description 
WHERE (I.pmid = new.pmid );
END; //
delimiter ;

我发现您的数据不一致: 1. 您如何在没有主表的情况下将 pmid 存入库存?2. 颜色字段为数字;与您的示例相矛盾。

于 2013-01-23T19:58:59.430 回答