插入新值时字段B默认等于字段A的值,而字段A是自增ID,取不到值

xloveme 2017-02-01 10:33:47
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`aid` int(11) NOT NULL AUTO_INCREMENT,
`bid` int(11) NOT NULL,
PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


bid 默认值 等于 aid,我的思路是创建 insert before 触发器,在触发器中

set new.bid=new.aid;

但现实环境中却是, new.aid 永远为0。 其他有什么好办法吗?
...全文
230 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-02-10
  • 打赏
  • 举报
回复
那个链接里说的是 before 触发器用 set,前面已经说过了,befre 里面取不到值
cly_0 2017-02-09
  • 打赏
  • 举报
回复
引用 2 楼 xloveme 的回复:
[quote=引用 1 楼 cly_0 的回复:] 如果没有特别要求的话 你可以选择 利用触发器插入值后再更新数据
试过了,触发器里面不能更新当前表[/quote] 抱歉 过年了一直没时间看 回的有点晚, 你可以试试这个链接里的法子 http://zyn010101.iteye.com/blog/1338997
xmniemaosheng 2017-02-03
  • 打赏
  • 举报
回复
不能更新本表, 这边不如MS SQL ,有其他成熟的解决方案吗?
VertigozZ 2017-02-03
  • 打赏
  • 举报
回复
用update更新数据吧,有滞后性!
zjcxc 2017-02-03
  • 打赏
  • 举报
回复
坐看,before 时取不到值,after 时无法更新,似乎无解
cly_0 2017-02-02
  • 打赏
  • 举报
回复
如果没有特别要求的话 你可以选择 利用触发器插入值后再更新数据
xloveme 2017-02-02
  • 打赏
  • 举报
回复
引用 1 楼 cly_0 的回复:
如果没有特别要求的话 你可以选择 利用触发器插入值后再更新数据
试过了,触发器里面不能更新当前表

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧