Ruby on Rails mysql2连接最后一个\u id始终返回0

Ruby on Rails mysql2连接最后一个\u id始终返回0,mysql,ruby-on-rails,Mysql,Ruby On Rails,我使用的是Rails 5、mysql 5.7,我需要获取上一个insert语句的最后一个id(该语句使用load data infile命令插入多条记录),我不想只使用Model.last.id,因为可能会发生另一个进程在第一个进程请求最后一个\u id之前插入了新记录,因此,我尝试使用ActiveRecord::Base.connection.raw\u connection.last\u id,因为它使用一个mysql调用,每个连接都可以使用,但是这个方法总是返回0,尽管插入了新记录并且主键

我使用的是Rails 5、mysql 5.7,我需要获取上一个insert语句的最后一个id(该语句使用load data infile命令插入多条记录),我不想只使用
Model.last.id
,因为可能会发生另一个进程在第一个进程请求最后一个\u id之前插入了新记录,因此,我尝试使用
ActiveRecord::Base.connection.raw\u connection.last\u id
,因为它使用一个mysql调用,每个连接都可以使用,但是这个方法总是返回0,尽管插入了新记录并且主键是自动递增的。有线索吗

您可以尝试
ActiveRecord::Base.connection.execute(“SELECT LAST_INSERT_ID()”)
实际上,这会返回正确的值,但是我不想依赖于此,因为此命令可能会随着mysql的更新版本而更改,因此,最好使用gem,它将处理版本更改。您可以尝试
ActiveRecord::Base.connection.execute(“SELECT LAST\u INSERT\u ID()”)
这确实返回了正确的值,但我不想依赖于此,因为此命令可能会随mysql的较新版本而更改,因此,最好使用gem,它将处理版本更改。