テーブルの主キーを生成するときの最良のアプローチは何ですか?
つまり、データベースによって受信されたデータが単射ではなく、主キーとして使用できない場合です。
コードで、テーブル行の主キーを管理するための最良の方法は何ですか?
ありがとう。
テーブルの主キーを生成するときの最良のアプローチは何ですか?
つまり、データベースによって受信されたデータが単射ではなく、主キーとして使用できない場合です。
コードで、テーブル行の主キーを管理するための最良の方法は何ですか?
ありがとう。
AUTO_INCREMENT
mysql でIDENTITY
、SQL Server で..
最初の推奨事項は、主キーの uniqueidentifier を避けることです。クライアント側で生成するための興味深い簡単な方法がいくつかありますが、主キーに有用な idex を持つことはほとんど不可能です。時間をさかのぼって、uniqueidentifiers が使用されている場所の 99% を禁止できれば、過去 2 年間で 3 人年以上のデータベース管理者/開発時間を節約できたでしょう。
INT IDENTITY を主キーとして使用することをお勧めします。
create table YourTableName(
pkID int not null identity primary key,
... the rest of the columns declared next.
)
ここで、pkID は主キー列の名前です。
これはあなたが探していることをするはずです。
IDENTITY
SQL Server で
また、データを処理しているときに新しい ID が何であったかを知る必要がある場合は、ステートメントの句をINSERT
使用してください。したがって、新しい行のコピーが table-type param に配置されます。OUTPUT
INSERT
何らかの理由で SQL で一意の ID を生成することが適切でない場合は、アプリで GUID を生成します。GUID には非常に高いレベルの一意性があります (ただし、実際には保証されていません)。また、SQL Server には列専用の GUID タイプがあり、uniqueidentifier
.