我有一个数据库表 A,其中包含字段 varchar(20)。我有另一个带有字段 varchar(60) 的表 B。执行插入语句的字符数大于 20。我尝试在表 A 上设置一个 before insert 触发器,并将原始值(可能大于 20)添加到表 B。但即使在 before insert 触发器中,我也得到了截断的值(仅前 20 个字符)。有什么方法可以在表 B 中添加大于 20 个字符的值,并在表 A 中添加前 20 个字符。
- 表 A 无法更改为 varchar(60)
- 数据无法直接插入B表(仅触发器)
最佳答案
我建议您向表 A 添加单独的列。因此您将拥有 column1 varchar(60) 和 column1_short(20) 并在触发器 column1 中使用将数据传播到表 B。 在我看来,您无法从原始插入值中获取插入触发器中的值,您只能访问已更改值的 NEW 。
关于mysql - 在插入触发事件之前获取截断的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38868925/