此代码在我的本地 RoR/Windows 7(64 位)上运行:
sql = ActiveRecord::Base.connection()
last_pk = sql.insert("insert into manual (name) values ('hello new value')")
puts 'last_pk=', last_pk
但始终显示“0”。
由于各种原因,我无法在这种情况下使用 ActiveRecord。
(注意:以上代码在我的共享主机上运行良好。 另请注意:为了使任何数据库连接正常工作,我必须根据 StackOverflow.com 上的另一个答案将 mysql5\bin\libmySQL.dll 替换为不同的 DLL。)
最佳答案
如果有疑问从mysql获取:
SELECT LAST_INSERT_ID()
将返回用于插入的最后一个 ID。如果您进行多线程处理,请务必将这两个语句锁定在一个同步块(synchronized block)中。
关于mysql - 如果使用原始 ActiveRecord::Base.connection(),如何获取最后插入的主键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394359/