从另一张表中插入后更新行

3
我使用MySql,并有两个表,masterinventory。现在我需要一个触发器,在插入更新inventory表字段product_description后,从master表字段product_description中获取值。

例如:

master表:

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

库存表:
invid - pmid  - product_description - color
1        1                             black

触发器应该从partmaster插入pmid = pmid的产品描述。
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 ;

谢谢

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. 颜色字段是数字类型的,这与你的示例相矛盾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接