0

我正在创建一个触发器来更改一个向其添加新列并将值插入其中的表。

我的代码看起来像 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'

4

3 回答 3

2

从文档中:

每个表有 4096 列的硬性限制...每个表(无论存储引擎如何)的最大行大小为 65,535 字节。

你能达到这些限制吗?即使您不能,我建议您考虑设计,并添加记录而不是新字段。然后你可以尝试 PIVOT 表 - 将行转换为字段,互联网上有很多数据透视示例,当然还有 stackoverflow。

于 2012-08-03T06:59:34.440 回答
1

试试这个NEW.

 ALTER TABLE user_access ADD type_name INT(2) NOT NULL;
于 2012-08-03T06:09:01.897 回答
1

ALTER TABLE或者CREATE TABLE不允许在 MySql 中的触发器内部。所以无论如何它都行不通。

于 2012-08-03T06:10:34.860 回答