Как исправить триггер SQL

#sql #triggers

#sql #триггеры

Вопрос:

Как это исправить?

 CREATE TRIGGER tb_mhs2_hapus AFTER DELETE 
ON tb_mhs2 FOR EACH ROW
BEGIN
INSERT INTO tb_mhs2_hapus (nama, no, alamat, org_tua, timeee) VALUES (old.nama, old.no, old.alamat, old.org_tua, SYSDATE());
END;
 

я запутался, где я ошибаюсь? «У вас ошибка в синтаксисе SQL;»

Ответ №1:

Прежде всего, почему имя вашего триггера совпадает с именем таблицы? tb_mhs2_hapus

Итак, ваш код должен быть:

 CREATE OR REPLACE TRIGGER TRG_tb_mhs2_hapus 
AFTER DELETE ON tb_mhs2 
FOR EACH ROW
BEGIN
  INSERT INTO tb_mhs2_hapus (nama, no, alamat, org_tua, timeee) 
  VALUES (old.nama, old.no, old.alamat, old.org_tua, SYSDATE());
END;
 

Комментарии:

1. по-прежнему неправильно, мистер, СОЗДАЙТЕ ТРИГГЕР ИЛИ ЗАМЕНИТЕ TRG_tb_mhs2_hapus ПОСЛЕ УДАЛЕНИЯ В tb_mhs2 ДЛЯ КАЖДОЙ СТРОКИ, НАЧНИТЕ ВСТАВЛЯТЬ В tb_mhs2_hapus (nama, no, alamat, org_tua, timeee) ЗНАЧЕНИЯ (:old.nama, :old.no , :old.alamat, :old.org_tua, SYSDATE) MySQL сказал: Документация #1064- У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с ‘ИЛИ ЗАМЕНИТЕ TRG_tb_mhs2_hapus ПОСЛЕ УДАЛЕНИЯ НА tb_mhs2 ДЛЯ КАЖДОЙ СТРОКИ, НАЧИНАЮЩЕЙСЯ …’ в строке 1