Триггер не работает - измените таблицу, чтобы добавить новый столбец перед вставкой в него
Я делаю триггер, чтобы изменить таблицу, которая добавляет новый столбец к нему и вставляет в него значение.
Мой код выглядит так:
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'
3 ответа
Из документации:
Существует жесткое ограничение в 4096 столбцов на таблицу... Максимальный размер строки в каждой таблице (независимо от механизма хранения) составляет 65 535 байт.
Можете ли вы достичь этих ограничений? Даже если вы не можете, я бы посоветовал вам подумать о дизайне и добавить записи вместо новых полей. Тогда вы можете попробовать PIVOT таблицу - преобразовать строки в поля, в интернете есть много примеров сводок и, конечно, в stackru.
Попробуй это без NEW.
ALTER TABLE user_access ADD type_name INT(2) NOT NULL;
ALTER TABLE
или же CREATE TABLE
не допускается внутри триггера в MySql. Так что в любом случае это не сработает.