mysql执行插入更新语句,影响条数正常应该是几条?

INSERT INTO stock_spec(spec_id,unpay_num)
            (SELECT spec_id,actual_num FROM sales_trade_order 
            WHERE trade_id='194934' ) ON DUPLICATE KEY UPDATE unpay_num=unpay_num+VALUES(unpay_num);

执行如上的插入更新语句,select的值只有一条记录,执行却显示影响两条数据?这正常吗?

阅读 2.2k
1 个回答

官方5.7参考手册:

If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row occurs. The affected-rows value per row is 1 if the row is inserted as a new row, 2 if an existing row is updated, and 0 if an existing row is set to its current values.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题