2016-08-04 1 views
1

У меня есть триггер MySQL, заканчивающийся аргументом case относительно ввода другого столбца.MySQL - Как я могу ввести триггер настраиваемого значения и переопределить?

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?

Редактировать: Я попытался пропустить значение ELSE, но тогда он просто дает мне чистую коррекцию при попытке переопределить.

ответ

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'.

+1

Спасибо! Ваш ответ открыл мой взгляд на то, как я мог бы разработать решение. –