插入后,我需要知道该行的ID,我该怎么做?Sequel有没有last_insert_id方法?
3
A
回答
2
根据Dataset#insert documentation,insert()
的返回值通常是插入行的主键,但它取决于您使用的是哪个适配器。
1
我试着用SQL-Server和uniqueidentifier一样,但没有成功。唯一标识符不返回。从我的定义
提取物:
CREATE TABLE [dbo].[MyTable](
[ID] [uniqueidentifier] NOT NULL,
[Data] [nvarchar](255) NULL
)
ALTER TABLE [dbo].[MyTable] ADD DEFAULT (newid()) FOR [ID]
当我插入带有续集:
DB[:MyTable].insert(:Data => 'data')
的数据集添加唯一标识符,但返回代码,如果数据集#刀片是nil
。
随着
DB[:MyTable].insert(:ID => Sequel.function(:newid), :Data => 'data')
你得到同样的结果。
我试图
key = Sequel.function(:ID)
DB[:MyTable].insert(:ID => key, :Data => 'data')
但 '钥匙' 是唯一的函数调用,而不是价值。用Sequel.function(:ID).f
,你会得到一个“无效的列名ID”。“ -error
但是如果你使用一个模型中,你得到的唯一标识符:
class MyTable < Sequel::Model(:MyTable); end
entry = MyTable.create(:Data => 'data')
$uniqueidentifier = entry[:ID]
相关问题
- 1. Mysql/Ruby Sequel上次插入ID值,有什么方法?
- 2. 有没有protractor.promise.when()方法?
- 3. 有没有叫onUpgrade方法?
- 4. getelementbyid没有方法
- 5. 没有方法'只读',并没有方法'attr'
- 6. 有没有办法挂钩Java方法?
- 7. 有没有方法创建一个UIImage没有方向?
- 8. 有没有更有效的方法?
- 9. getAnnotations方法上没有方法
- 10. 有没有办法在Textmate中从方法跳转到方法?
- 11. startMonitoringSignificantLocationChanges方法没有响应
- 12. 没有getter/setter方法
- 13. SherlockListActivity没有getSupportFragmentManager方法
- 14. 没有查询方法
- 15. jQuery.fn.extend,没有MVC3的方法
- 16. 没有stringWithContentsofURL方法找到
- 17. $ _POST方法没有工作
- 18. 没有最终的方法
- 19. HTMLCanvasElement没有方法'toDataUrl'
- 20. OpenCPU:没有方法asJSON S3
- 21. EmberJS:没有方法lastObject,nextObject
- 22. Spotipy没有.devices()方法?
- 23. JavaScript方法没有找到
- 24. ServletContext没有.createServlet方法?
- 25. Spinejs。没有方法'hasMany'
- 26. ...是没有存取方法
- 27. 对象没有方法Javascript
- 28. jqGrid没有addJSONData方法
- 29. HTMLInputElement没有方法'val'
- 30. 没有类的Ruby方法?