Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-如何输入自定义值并覆盖触发器?_Mysql_Sql_Triggers_Overriding - Fatal编程技术网

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

MySQL-如何输入自定义值并覆盖触发器?,mysql,sql,triggers,overriding,Mysql,Sql,Triggers,Overriding,我有一个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_列中存在无法预测的值,我不希望插入else值,而是希望插入自定义值。如何在entry_列中输入自定义值并重写触发器,使其不

我有一个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_列中存在无法预测的值,我不希望插入else值,而是希望插入自定义值。如何在entry_列中输入自定义值并重写触发器,使其不插入else值


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

Hmmmm。你想这样做吗

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);

新值将作为“自定义5”插入

谢谢!你的回答使我想到了如何设计解决方案。