Предполагаемый результат - сохранить примечания о внесении изменений в поле в другом поле.Я хочу, чтобы новые примечания добавлялись к полю хранения, и, поскольку это не функция, которая делает это, я пытаюсь найти способ решить эту проблему без добавления дополнительных слоев кода, таких как функции и хранимые процедуры.
/* Before Update Trigger */
DECLARE v_description VARCHAR(255);
DECLARE v_permnotes MEDIUMTEXT;
DECLARE v_oldnote VARCHAR(500);
DECLARE v_now VARCHAR(25);
SET v_now = TRIM(DATE_FORMAT(NOW(), '%Y-%m-%d %k:%i:%s'));
SET v_oldnote = OLD.notes;
IF (NEW.permanent_notes IS NULL) THEN
SET v_permnotes = '';
ELSE
SET v_permnotes = OLD.permanent_notes;
END IF;
SET NEW.permanent_notes = CONCAT_WS(CHAR(10), v_permnotes, v_now,": ", v_description);
Я стремлюсь к тому, чтобы результаты в постоянном поле выглядели следующим образом
<datetime value>: Some annotation from the notes field.
<a different datetime>: A new annotation
etc....
Что я получу от моего текущего триггера:
2018-12-30 17:15:50
:
Test 17: Start from scratch.
2018-12-30 17:35:51
:
Test 18: Used DATE_FORMAT to sxet the time
2018-12-30 17:45:52
:
Test 19. Still doing a carriage return after date and after ':'
Я не могу понятьпочему после даты стоит новая строка, а затем снова после ':'.
Если я опущу CHAR (10), я получу:
Test 17: Start from scratch.
2018-12-30 17:35:51
:
Test 18: Used DATE_FORMAT to sxet the time
2018-12-30 17:45:52
:
Test 19. Still doing a carriage return after date and after ':'Test 20. Still doing a carriage return after date and after ':'
Некоторые свежие / более опытныеглаза были бы очень полезны при отладке.
Спасибо.