有没有像MSSQL' INSERT INTO表(fieldlist)OUTPUT INSERTED.id VALUES"在MySQL?

时间:2017-05-31 06:08:21

标签: mysql qsqlquery

我希望获得由于该声明而声明插入的记录的ID。我知道SELECT LAST_INSERT_ID();但不能在我的场景中使用它,因为LAST_INSERT_ID()在每个连接的基础上工作,我目前在我的框架中使用一个方便的函数来访问db - 但这方便意味着连接仅在执行该语句期间存在 - 所以我想知道是否存在标题中显示的Microsoft SQL Server中的语法?

在我的环境中,我正在构建命令,如下所示:

INSERT INTO Bookings (Status,YEarlyBird,YDays,YHotel,YBanquet,Name,Company,Address,Town,Region,Postcode,CountryCode,Second
Name,SecondEmail,RoomType,SpouseMealPlan,Notes,Conference_VAT,Accommodation_VAT,Conference_id,InvoiceAmount,Conferen
ceGross,Accomodation,SpouseGross,SpouseNet,TotalGross,TotalNet,ConferenceNet,Courses) VALUES (:<C1:,:<C1:,:<C6:,:<C
6:,:<C1:,:<C12:,:<C28:,:<C15:,:<C7:,:<C5:,:<C5:,:<C2:,:<C1:,:<C1:,:<C15:,:<C3:,:<C1:,:<F:,:<F:,:<I:,:<F:,:<F:,:<F:,:
      <F:,:<F:,:<F:,:<F:,:<F:,:<C1:);SELECT LAST_INSERT_ID();

(&lt;: - stuff是绑定变量的占位符) 如果单独运行INSERT,它就可以运行。如果我按照所示附加SELECT LAST_INSERT_ID(),我会得到:

[MySQL][ODBC 5.3(w) Driver][mysqld-5.7.18-log]You have an error in your SQL syntax; check the manual that corresponds to y
      our MySQL server version for the right syntax to use near 'SELECT LAST_INSERT_ID()' at line 1 

P.S:使用这种方便的方式访问数据库在我的用例中完全没问题,因为数据库只写了一次 - 完全与我正在处理的语句一致。

0 个答案:

没有答案