mysql:在多个列中插入autoincrement值

hec6srdp  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(388)

你能一次在几列中插入一个自动增量值吗?
示例表“zoo”:
id(int autoincrement主键);
父级(int);
数据(varchar,10)。 INSERT INTO zoo (id, parent, data) VALUES (NULL, id, "tiger"); 还是我要再问一次? UPDATE TABLE zoo SET parent=id WHERE parent IS NULL;

7y4bm7vi

7y4bm7vi1#

您可以通过插入前触发器执行此操作:

DELIMITER //
CREATE TRIGGER same_id_trigger
BEFORE INSERT 
    ON zoo FOR EACH ROW

BEGIN
    DECLARE id int DEFAULT 0;

    SELECT auto_increment INTO id
    FROM information_schema.tables
    WHERE table_name = 'zoo' AND table_schema = database();

    SET NEW.parent = id;

END; //
DELIMITER ;

假设上述触发器起作用,那么它将通过直接查询信息模式来查找 zoo table。然后,触发器有效地截获插入,并为 parent 列。

相关问题