如何在一个表中插入相同的LAST_INSERT_ID()来创建多个记录;

时间:2017-06-21 08:40:12

标签: c# mysql asp.net

我正在编写一个使用ASP.NET,C#以及使用MYSQL的网站。 我需要能够使用相同的child_id记录两行;

我的问题是这一句话,它插入一行并跳过最后一行。

   //data.ChldrenRecord.Service contain two records
   // babysit, and tutor
  foreach (string s in data.ChildrenRecord.Services)
  {
     query += (" INSERT INTO ServiceChildren SET service='" + s + "', child_id=LAST_INSERT_ID();");
  }

所以表应该看起来像这样

 id   service    child_id
 1    babysit    1
 2    tutor      1

我使用Last_INSERT_ID()因为child_id是外键。我在另一个表中创建一个记录,其主键是child_id。之后,我使用LAST_INSERT_ID()来引用一个记录主键child_id,以便我可以在我的ServiceChildren表中使用它。

因为它看起来像我的桌子:

 id    service   child_id
 1     babysit   1

我想我现在正走在正确的轨道上。如果我直接登录到数据库,这个语句有效:

  SET @last_id = LAST_INSERT_ID();
 //then insert statements
  INSERT INTO ServiceChildren(service, child_id) VALUES('babysit', @last_id);
  INSERT INTO ServiceChildren(service, child_id) VALUES('tutor', @last_id);

但在我的C#中,ASP.NET代码行         SET @last_id = LAST_INSERT_ID(); 什么都不做,甚至用先前的insert语句填充表。

1 个答案:

答案 0 :(得分:0)

好的,我发现了我的问题。我需要在连接字符串中放置允许用户变量=真以允许创建和使用 @last_id