mysql - 插入触发 SQL。插入新表后如何从另一个表中检索值

标签 mysql sql triggers mysql-workbench database-trigger

我是 SQL 触发器的新手。我目前被以下问题困扰。

我有 3 张 table -

  1. 订单

    orderid int(11) AI PK 订单日期日期 总计十进制(8,2)

  2. 产品

    productid int(11) AI PK 产品名称 varchar(50) 单位 varchar(10) 价格十进制(8,2)

  3. 订单详情

    orderid int(11) 产品 ID 整数 (11) 价格小数(8,2)

我在订单产品表中都有记录。 orderdetails 表为空,没有记录。

我想在 orderdetails 上创建一个插入触发器,以自动从 products 表中检索价格,并在每次更新时将其更新到 orderdetails 表中。插入一个查询,例如;

(例如 INSERT INTO orderdetails(orderid,productid) value(1,1))到 orderdetails 表中。

任何帮助将不胜感激。

最佳答案

我手头没有 MySQL,但是这个可以工作:

CREATE TRIGGER ins_price BEFORE INSERT ON orderdetails
       FOR EACH ROW
       BEGIN
           SET new.price= (select price from products where productid = new.productid);
       END;//

关于mysql - 插入触发 SQL。插入新表后如何从另一个表中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48803103/

相关文章:

mysql - 如何在mysql的触发器中声明一个值?

MySQL触发器用户声明变量

MySQL:如何创建模糊LIMIT?

PHP header 重定向不起作用并停留在 login.php 上

php - 保留 TextArea 中的换行符

mysql - "Merge"Mysql中的IN和LIKE操作符

mysql - 如何在 codeigniter 中执行自定义查询 - 分数表中用户的排名

MySQL 和 GROUP_CONCAT() 最大长度

sql - 如果存在(从中选择 1)和(从中选择 0)之间的区别

java - 启用 SQL 触发器时,Java 中的准备语句失败