【问题标题】:MySQL - assign values of AUTO_INCREMENT to another column in a tableMySQL - 将 AUTO_INCREMENT 的值分配给表中的另一列
【发布时间】:2018-08-04 11:55:25
【问题描述】:

我有下表:

字段id 设置为AUTO_INCREMENT。我希望字段user_id 具有与id 相同的值。

首先,我尝试将user_id 设置为AUTO_INCREMENT,但这无法完成,因为一个表中只能有一个AUTO_INCREMENT 字段。

其次,我尝试编写一个触发器,将值从id 分配给user_id

create trigger 'upd' before update 
on 'obligations' 
for each row 
set old.user_id = old.id;

这会产生以下错误:

ERROR 1362 (HY000): Updating of OLD row is not allowed in trigger

有人可以建议如何解决这个问题吗?

注意:我的问题不同,因为它给出了 OLD 触发器语句错误,而不是 NEW 触发器语句错误。

【问题讨论】:

标签: mysql triggers auto-increment


【解决方案1】:

我通过创建一个触发器来完成它,它将在每个插入操作中启动。请看以下内容:

 DELIMITER $$
 CREATE TRIGGER insert_example
 BEFORE INSERT ON obligations
 FOR EACH ROW 
 SET NEW.user_id= 
  ( SELECT AUTO_INCREMENT FROM information_schema.TABLES 
     WHERE TABLE_SCHEMA = DATABASE() 
    AND TABLE_NAME = 'obligations' ); 
  end $$

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 2023-01-13
    • 1970-01-01
    • 2015-11-18
    • 2017-10-29
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2016-02-01
    相关资源
    最近更新 更多