Триггер не работает – измените таблицу, чтобы добавить новый столбец, прежде чем вставлять в нее

Я создаю триггер для изменения таблицы, которая добавляет к ней новый столбец и вставляет в нее значение.

Мой код выглядит lyk dis:

delimiter | CREATE TRIGGER addfield AFTER INSERT ON `entity_group_mapping` FOR EACH ROW BEGIN ALTER TABLE user_access ADD NEW.type_name INT(2) NOT NULL; END; | delimiter ; 

Это дает мне ошибку: #1103 - Incorrect table name 'NEW'

Из документации:

Существует жесткий предел 4096 столбцов на таблицу … Каждая таблица (независимо от механизма хранения) имеет максимальный размер строки 65 535 байт.

Можете ли вы достичь этих ограничений? Даже если вы не можете, я предлагаю вам подумать о дизайне и добавить записи вместо новых полей. Затем вы можете попробовать таблицу PIVOT – перевести строки в поля, в Интернете есть много примеров поворота и, конечно, в stackoverflow.

попробуйте это без NEW.

  ALTER TABLE user_access ADD type_name INT(2) NOT NULL; 

ALTER TABLE или CREATE TABLE не разрешены внутри триггера в MySql. Так что в любом случае это не сработает.