您可以一次将自动增量值插入几列吗?
示例表“ zoo”:
id(int autoincrement primary_key);
父母(int);
数据(varchar,10)。
INSERT INTO zoo (id, parent, data) VALUES (NULL, id, "tiger");
还是我必须再次查询?
UPDATE TABLE zoo SET parent=id WHERE parent IS NULL;
答案 0 :(得分:0)
您可能可以通过插入前触发器执行此操作:
text response
0 [ , q, u, , c, u, s] [causadorDe]
1 [ , q, u, , l, v, , á, , x, i, s, t, ê, n, ... [causadorDe]
2 [p, r, q, u, ê, , é, , q, u, , x, i, s, t] [causadorDe]
3 [ , q, u, , é, , q, u, , s, t, , c, n, t, ... [contidoEm]
4 [ , q, u, , é, , q, u, , s, t, , c, n, t, ... [contidoEm]
5 [q, u, l, , é, , , n, t, ó, n, i, m, , d] [antonimoNDe]
6 [q, u, l, , é, , , c, n, t, r, á, r, i, , d] [antonimoNDe]
7 [ , q, u, , é, , , p, s, t, , d] [antonimoNDe]
8 [q, u, l, , é, , , c, n, s, q, u, ê, n, c, ... [finalidadeDe]
9 [q, u, l, , é, , , r, s, u, l, t, d, , d] [finalidadeDe]
10 [ , q, u, , r, s, u, l, t, , d] [finalidadeDe]
11 [ , q, u, , u, s, r, i, , p, r] [finalidadeDe]
12 [ , q, u, , p, d, , s, r, , u, s, d, , p, r] [finalidadeDe]
13 [q, u, l, , é, , , r, i, g, m, , d] [originarioDe]
14 [d, , n, d, , v, m, ] [originarioDe]
15 [d, , n, d, , é, , d, r, i, v, d, ] [originarioDe]
16 [q, u, l, , é, , , r, i, g, m, , d] [originarioDe]
17 [d, , n, d, , v, m, ] [originarioDe]
18 [d, , n, d, , é, , d, r, i, v, d, ] [originarioDe]
19 [p, r, , q, u, , s, r, v, , u, m] [servePara]
20 [p, r, , q, u, , u, s, r, i, , u, m] [servePara]
21 [q, u, l, , é, , , f, i, n, l, i, d, d, , ... [servePara]
22 [p, r, , q, u, , s, r, v, , u, m] [servePara]
23 [p, r, , q, u, , u, s, r, i, , u, m] [servePara]
24 [q, u, l, , é, , , f, i, n, l, i, d, d, , ... [servePara]
假设上述触发器起作用,则可以通过直接查询信息架构以找到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
列交换了该自动增量值。