Я создаю триггер для изменения таблицы, которая добавляет к ней новый столбец и вставляет в нее значение.
Мой код выглядит 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. Так что в любом случае это не сработает.