2017-05-31 136 views
2

我想使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

+1

你想用总价值做什么? – Shadow

+0

我想要将总值插入列总数据库中,所以我可以搜索它。例如,我搜索了Id = 1的payement,其中Abetura_Processo = 10和Telefone = 10等等,然后我希望总列等于80。 –

回答

3

您可以通过前插入触发器中的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来替代这个触发:那么,如下更改值设定线。

0

明白了,每件事情都很好。