我正在查看一个包含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
记录中。任何想法都会非常感激。
答案 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;