触发语法mySQL
问题描述:
我想使Total列接收其他列之间的总和,但我不断收到错误1193.我是mySql的新手,所以我不知道应该从哪里开始寻找解决错误。触发语法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来替代这个触发:那么,如下更改值设定线。
答
明白了,每件事情都很好。
你想用总价值做什么? – Shadow
我想要将总值插入列总数据库中,所以我可以搜索它。例如,我搜索了Id = 1的payement,其中Abetura_Processo = 10和Telefone = 10等等,然后我希望总列等于80。 –