我有一个包含用户表的 MySQL 数据库。表的主键是“userid”,设置为自动递增字段。
我想做的是,当我将新用户插入表中时,使用与自动增量在不同字段“default_assignment”的“userid”字段中创建的相同值。
例如
我想要这样的声明:
INSERT INTO users ('username','default_assignment') VALUES ('barry', value_of_auto_increment_field())
所以我创建了用户“Barry”,“userid”生成为 16(例如),但我也希望“default_assignment”具有相同的值 16。
请问有什么办法可以实现吗?
谢谢!
更新:
感谢您的回复。default_assignment 字段不是多余的。default_assigment 可以引用 users 表中的任何用户。创建用户时,我已经有一个允许选择另一个用户作为 default_assignment 的表单,但是在某些情况下需要将其设置为同一用户,因此我的问题是。
更新:
好的,我已经尝试了更新触发建议,但仍然无法使其正常工作。这是我创建的触发器:
CREATE TRIGGER default_assignment_self BEFORE INSERT ON `users`
FOR EACH ROW BEGIN
SET NEW.default_assignment = NEW.userid;
END;
但是,当插入新用户时,default_assignment 始终设置为 0。
如果我手动设置用户 ID,则 default_assignment 确实设置为用户 ID。
因此,自动分配生成过程显然发生在触发器生效之后。