MySQL - 如何输入自定义值和覆盖触发器?

时间:2016-08-04 10:37:44

标签: mysql sql triggers override

我有一个MySQL触发器,以关于另一列的条目的case语句结束。

NEW.reference_column = CASE NEW.entry_column
WHEN "Test Value 1" THEN 1
WHEN "Test Value 2 " THEN 2
WHEN "Test Value 3" THEN 3
ELSE 4 END;

但是,有时reference_column中的值无法预测,我也不希望插入else值而是自定义值。如何在entry_column中输入自定义值并覆盖触发器,以便它不会插入else值?

编辑:我试图跳过ELSE值但是在尝试覆盖时它只是给我一个空白的修正。

1 个答案:

答案 0 :(得分:1)

嗯,嗯。 。 。像这样的逻辑会做你想要的吗?

NEW.reference_column = (CASE WHEN NEW.entry_column = 'Test Value 1' THEN 1
                             WHEN NEW.entry_column = 'Test Value 2' THEN 2
                             WHEN NEW.entry_column = 'Test Value 3' THEN 3
                             WHEN NEW.entry_column LIKE 'Custom %'
                             THEN substring_index(NEW.entry_column, ' ', -1) + 0
                             ELSE 4
                        END);

新值将作为'Custom 5'插入。