mysql - 编写动态代码以将值插入到变量中,变量也是列名

标签 mysql

如何编写列名称的动态脚本;

GST是一个变量,我希望每当有数据插入gross_sales列时,它都会根据公式动态计算

SET @GST = gross_sales * 0.07, @gross_sales = 'gross_sales';

INSERT INTO sales(invoice_no, GST, gross_sales)
VALUES ('INV-1', @GST, 11.00),
       ('INV-2', @GST, 1.20),
       ('INV-3', @GST, 1.20);

我希望每当将数据输入gross_sales 列时自动计算GST 列的值。我尝试过声明变量,但没有成功。

最佳答案

触发器就是您正在寻找的东西。
您需要创建一个 before insert 触发器来计算 gst 的值。

delimiter $$
CREATE TRIGGER `calc_gst`
 BEFORE INSERT
 ON `sales`
 FOR EACH ROW
 BEGIN
   set new.gst = new.gross_sales*0.07;
 END
delimiter ;

您将插入这样的值:

insert into sales values('inv-1',0,100);

关于mysql - 编写动态代码以将值插入到变量中,变量也是列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109080/

相关文章:

PHP 和 MySQL 搜索大量列

php - 如何打破插入查询,在插入触发mysql之前

mysql - SQLAlchemy:group_concat(情况...)可能吗?

php - 我似乎无法从 MySQL 获取最后插入的记录/id

mysql - 如果不存在具有类似特征的其他用户,则从 MySQL 表中删除用户

mysql - 为什么我要对这个非常简单的 MySQL 查询进行文件排序?

mysql - 使用表 B 中的所有不同数据更新表 A 中的行

c# - SelectCommand.Connection 属性尚未初始化。数据库

c# - Nunit MySQL 错误

mysql - 'IN' 运算符中的动态值