SQL父 - 同一插入查询中的子关系

时间:2013-06-19 13:16:18

标签: php mysql sql

我有一张桌子,可能有父子关系。 " parentId的"有一个外键给它的父母" dataid"例如:

dataid     dataname     parentid
---------------------------------
1          example      NULL
2          record       NULL
3          foo          1
4          bar          1

在这个例子中,人口" foo"和" bar"是"例子"的孩子。 现在我想在这个表中插入多个数据记录,因为dataid是自动递增的,我想知道我是否可以在插入后获得此id而不执行额外的查询。例如:

INSERT INTO table (dataname, parentid) VALUES 
    ( cat, NULL ), ( tiger, **dataid from cat** ), ( lion, **dataid from cat** );

要获得此结果:

dataid     dataname     parentid
---------------------------------
5          cat          NULL
6          tiger        5
7          lion         5

答案 - 感谢PLB(和Simon Cambier):

仍然在彼此之后执行两个查询,但我认为这是解决方案。

/*first insert parent*/
INSERT INTO table (dataname, parentid) VALUES 
   ( cat, NULL );

/*insert children*/
INSERT INTO table (dataname, parentid) VALUES
   ( tiger, LAST_INSERT_ID() ), ( lion, LAST_INSERT_ID() );

0 个答案:

没有答案