MySQL - 如何输入自定义值并覆盖触发器?
MySQL - How can I enter custom value and override trigger?
我有一个 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 中存在无法预测的值,我不希望插入其他值,而是插入自定义值。如何在 entry_column 中输入自定义值并覆盖触发器,使其不插入其他值?
编辑:我试图跳过 ELSE 值,但在尝试覆盖时它只是给我一个空白更正。
嗯嗯。 . .这样的逻辑会如你所愿吗?
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'
。
我有一个 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 中存在无法预测的值,我不希望插入其他值,而是插入自定义值。如何在 entry_column 中输入自定义值并覆盖触发器,使其不插入其他值?
编辑:我试图跳过 ELSE 值,但在尝试覆盖时它只是给我一个空白更正。
嗯嗯。 . .这样的逻辑会如你所愿吗?
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'
。