mysql - 触发器语法 mySQL

标签 mysql sql database-trigger

我想让“总计”列接收其他列之间的总和,但我不断收到错误 1193。 我是 mySql 的新手,所以我不知道应该从哪里开始寻找解决错误的方法。

DELIMITER $$
CREATE TRIGGER Total
BEFORE INSERT ON `despesas` FOR EACH ROW
BEGIN
    SET Total = Abertura_Processo+Telefone+Correspondencia+Cartorio+Conservatorio+Servico_Financas+Taxas_Emolumentos+Honorarios;
END;
$$
DELIMITER ;

我读了一些内容,根据我的理解,我需要创建一个变量,但我不知道如何创建。 The total column has its values manually inserted i want it to be automatically

最佳答案

您可以通过插入前触发器中的NEW.column_name引用新插入记录的字段。通过为此类列设置值,您可以更改插入的值。因此,按如下方式更改值设置行:

SET NEW.Total = NEW.Abertura_Processo+NEW.Telefone+NEW.Correspondencia+NEW.Cartorio+NEW.Conservatorio+NEW.Servico_Financas+NEW.Taxas_Emolumentos+NEW.Honorarios;

注意,您可以使用generated columns作为此触发器的替代方案。

关于mysql - 触发器语法 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294108/

相关文章:

sql - Teradata 更改周数的格式

postgresql - postgres - 创建带参数的触发函数

php - mySQL 数据库更新后,个人资料页面未更新

mysql - 在命令行中执行 .sql 文件

mysql - 在 MySQL 中字符串化一个 JSON 数组

java - 算法或 SQL : to find where conditions for a set of columns which ensures result set has value in a particular column always > 0

sql - 如何在该触发器中找到已调用触发器的 sql 语句的 audsid、sql_id

mysql - 插入新记录后如何创建更新触发器?

java - 从 MySQL 插入到 jTable 日期

mysql - 针对 SELECT 查询优化 my.cnf MariaDB