挿入後、行から ID を知る必要があります。どうすればよいですか?
1878 次
2 に答える
2
Dataset#insert documentationによると、戻り値insert()
は通常、挿入された行の主キーですが、使用しているアダプターによって異なります。
于 2010-04-20T01:15:27.067 に答える
1
SQL-Server と uniqueidentifier で同じことを試みましたが、成功しませんでした。uniqueidentifier は返されません。
私の定義からの抜粋:
CREATE TABLE [dbo].[MyTable](
[ID] [uniqueidentifier] NOT NULL,
[Data] [nvarchar](255) NULL
)
ALTER TABLE [dbo].[MyTable] ADD DEFAULT (newid()) FOR [ID]
Sequel で挿入すると:
DB[:MyTable].insert( :Data => 'data' )
データセットには一意の識別子が追加されますが、Dataset#insert の場合のリターン コードはnil
.
と
DB[:MyTable].insert(:ID => Sequel.function(:newid), :Data => 'data' )
同じ結果が得られます。
私は試した
key = Sequel.function(:ID)
DB[:MyTable].insert(:ID => key, :Data => 'data' )
ただし、「キー」は値ではなく関数呼び出しのみです。「無効な列名ID」が表示されますSequel.function(:ID).f
。-エラー
ただし、モデルを使用すると、uniqueidentifier が得られます。
class MyTable < Sequel::Model(:MyTable); end
entry = MyTable.create(:Data => 'data')
$uniqueidentifier = entry[:ID]
于 2012-09-20T08:39:32.113 に答える