mysql - 在插入触发事件之前获取截断的数据

标签 mysql

我有一个数据库表 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/

相关文章:

mysql - 如何使用 MySQL 配置 Spring Cloud Zipkin Server 以实现持久化?

python - mysql-python 排序规则问题 : how to force unicode datatype?

mysql - GROUP CONCAT 与 MESQL 中的 ORDER

mysql - 评论系统查询拉父+x号。 child 评论

mysql - 如何在 createview 的 MIN()/MAX() 中使用 BETWEEN?

mysql - 只删除连续的重复行

mysql - 从多对多关系中获取特定值

php - 如何在 phpword 和 Codeigniter 中每 4 列创建新行?

javascript - javascript 中的下拉列表包含数据库中的值

javascript - 使用 Javascript 更改 PHP 中元素的样式