Mysql 使用触发器插入基于外键的值
我在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
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 id将item\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