插入後,我需要知道該行的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. LAST_INSERT_ID()沒有返回所有標籤
- 2. Mysql/Ruby Sequel上次插入ID值,有什麼方法?
- 3. Ext.form.Panel有沒有方法「getEl」
- 4. 有沒有方法getBackgroundPage
- 5. 有沒有Ruby dealloc方法?
- 6. 有沒有sendToActivity()方法?
- 7. 有沒有方法文字?
- 8. 有沒有叫onUpgrade方法?
- 9. 有沒有protractor.promise.when()方法?
- 10. 有沒有辦法看到Sequel表達式會生成的原始SQL?
- 11. getelementbyid沒有方法
- 12. 沒有方法scrollTo
- 13. 沒有CopyToDatatable()方法
- 14. 沒有任何方法沒有File.ReadAllText?
- 15. 有沒有方便的方法!無?
- 16. 沒有方法'只讀',並沒有方法'attr'
- 17. 有沒有辦法掛鉤Java方法?
- 18. 有沒有方法創建一個UIImage沒有方向?
- 19. 有沒有更有效的方法?
- 20. 有沒有更有效的方法呢?
- 21. getAnnotations方法上沒有方法
- 22. MySQL的LAST_INSERT_ID語法
- 23. 有沒有辦法在IResultListener方法之前運行@after方法?
- 24. 有沒有辦法在Textmate中從方法跳轉到方法?
- 25. jquery沒有方法錯誤
- 26. Youtube API:沒有方法'loadVideoById'?
- 27. python int沒有__iadd __()方法?
- 28. JavaScript:Object [object global]沒有方法
- 29. whyWithAuth:方法沒有調用?
- 30. Cal.Message.Attach - 沒有找到方法