使用AUTO_INCREMENT插入相关的MySQL数据

时间:2010-01-08 19:14:28

标签: mysql

我正在查看一个包含3个表的数据库,我必须在其中插入数据:

resource
  id (AUTO_INCREMENT)
  name

resource_item
  id (AUTO_INCREMENT)
  name
  resource_id (FK ref resource.id)

resource_item_business_function
  id (AUTO_INCREMENT)
  business_function_name
  resource_item_id

我正在努力的事实是这必须是脚本化的。我只插入1 resource条记录,因此我可以轻松地将插入脚本放入resource表中。我要为resource_item插入约20 resource个记录,我甚至可以使用LAST_INSERT_ID()函数轻松完成。问题是...... 如何插入resource_item_business_function

我不知道如何将正确的 resource_item_id插入每个resource_item_business_function记录中。任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

每次插入resource_item后都需要使用LAST_INSERT_ID()。所以你的最终脚本看起来像这样:

SET AUTOCOMMIT=0;
SET @RESOURCE_ID=0;

INSERT INTO resource ( NULL, "Some Name");
SELECT LAST_INSERT_ID() INTO @RESOURCE_ID;

INSERT INTO resource_item ( NULL, "Some Name", RESOURCE_ID );
INSERT INTO resource_item_business_function ( NULL, "Some Name", LAST_INSERT_ID() );
...etc...
INSERT INTO resource_item ( NULL, "Some Name", RESOURCE_ID );
INSERT INTO resource_item_business_function ( NULL, "Some Name", LAST_INSERT_ID() );

COMMIT;