我有一个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值但是在尝试覆盖时它只是给我一个空白的修正。
答案 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'
插入。