Mysql 使用触发器插入基于外键的值

Mysql 使用触发器插入基于外键的值,mysql,triggers,Mysql,Triggers,我在mysql数据库中有以下表格: 项目 物品类别 Column Type Null Default Links to Comments MIME item_category_id (Primary) int(11) No item_category_name varchar(45) Yes NULL 命令 订单详情 Column

我在mysql数据库中有以下表格:

项目

物品类别

Column                      Type        Null    Default Links to    Comments    MIME
item_category_id (Primary)  int(11)     No              
item_category_name          varchar(45) Yes     NULL    
命令

订单详情

Column                      Type            Null    Default Links to    Comments    MIME
order_details_id (Primary)  int(11)         No              
FK_order_id                 int(11)         Yes     NULL    order -> order_id       
FK_order_item_id            int(11)         Yes     NULL    item -> item_id     
order_detail_unit_price     decimal(5,2)    Yes     NULL            
order_detail_quantity       int(11)         Yes     NULL    
我也有其他表,但我正试图在这些表上创建一个触发器

我正在尝试创建一个触发器,该触发器将基于外键fk\u order\u item\u iditem\u price添加到order\u detail表中。触发器将在插入后和更新后运行


任何帮助都将不胜感激。谢谢

我建议不要以这种方式使用触发器。我认为应用程序服务是更新表的正确位置。如果必须在数据库中,则考虑使用存储过程。您应该考虑如何实现这些表的安全性。使用存储过程可能会有所帮助,因为您可以为用户授予过程的权限,但不能授予表的权限

触发器可用于在插入或检查某些条件之前进行计算


我相信应用程序中的服务是解决您的问题的最佳解决方案。它应该处理更新和安全性。在您的情况下,它可能需要多个服务。一个用于创建订单,可能一个用于在下订单后更新。也许是另一种删除订单的方式,等等

听起来像是一个有趣的项目,如果你有问题,请告诉我们!你的触发器现在看起来像什么?它们工作得怎么样?@BobDalgleish我还没能让触发器工作。我已经能够使用一个查询(带有内部联接)来更新订单详情单价列,但是我需要将其自动化,以便在每次创建或编辑新订单详情时添加价格。这是我的查询代码,如果有任何用处:
updateorder\u detail-INNER-JOIN-item-ON-FK\u-order\u-item\u-id=item.item\u-id SET
order\u-detail\u-unit\u-price`=item.item\u-price其中item.item\u-price不为空`
Column              Type            Null    Default           Links to  Comments    MIME
order_id (Primary)  int(11)         No              
FK_order_user_email varchar(45)     Yes     NULL              user -> user_email        
order_time          datetime        Yes     CURRENT_TIMESTAMP           
order_pickup_time   time(6)         Yes     NULL            
order_instructions  varchar(45)     Yes     NULL            
order_gross_total   decimal(10,2)   Yes     NULL            
order_net_total     decimal(10,2)   Yes     NULL    
Column                      Type            Null    Default Links to    Comments    MIME
order_details_id (Primary)  int(11)         No              
FK_order_id                 int(11)         Yes     NULL    order -> order_id       
FK_order_item_id            int(11)         Yes     NULL    item -> item_id     
order_detail_unit_price     decimal(5,2)    Yes     NULL            
order_detail_quantity       int(11)         Yes     NULL