Возможно ли инициировать вставку всех столбцов для новой строки? В принципе, я хочу сделать копию новой записи в другой таблице, но нужно указать все столбцы.MySQL триггер INSERT все новые столбцы
Что-то вроде
DELIMITER $$
CREATE TRIGGER TestTrigger
AFTER INSERT
ON Table1 FOR EACH ROW
BEGIN
INSERT INTO `Table2` SELECT * FROM NEW;
END$$
DELIMITER ;
Однако это возвращает Table 'Database.NEW' doesn't exist
всякий раз, когда я пытаюсь вставить новую строку в Table1
.
В теле триггера, вы можете ссылаться на столбцы в теме таблицы (таблицы, связанной с триггером), используя псевдонимы старого и нового. OLD.col_name ссылается на столбец существующей строки перед ее обновлением или удалением. Имя NEW.col_ ссылается на столбец новой строки, которую нужно вставить, или на существующую строку после ее обновления.
@ lad2025 Это не работает MySQL возвращает «Не удается найти таблицу DatabaseName.NEW» – Wistar
В любом случае укажите все имена столбцов вручную, потому что 'SELECT *' - это плохая практика 9/10 случаев – lad2025
Я действительно не согласен. Я постоянно вижу, что люди говорят, что x - это плохая практика, но x существует для использования, и только потому, что некоторые люди злоупотребляют не означает, что это плохая практика. 'SELECT *' именно то, что вы должны использовать, если хотите ** ВСЕ ** столбцы – Arijoon