1

为表生成主键时最好的方法是什么?

即当数据库接收到的数据不是单射的,不能作为主键时。

在代码中,管理表行的主键的最佳方法是什么?

谢谢。

4

3 回答 3

2

AUTO_INCREMENT在 mysql 中,IDENTITY在 SQL Server 中。

于 2012-04-14T10:23:01.920 回答
2

首先建议远离任何主键的唯一标识符。尽管它有一些有趣的简单方法可以在客户端生成它,但它几乎不可能在主键上有任何可能有用的索引。如果我能及时返回并在 99% 的地方禁止使用唯一标识符,这将在过去 2 年中节省超过 3 人年的 dba/开发时间。

这是我的建议,使用 INT IDENTITY 作为主键。

create table YourTableName(
   pkID int not null identity primary key,
   ... the rest of the columns declared next.
)

其中 pkID 是您的主键列的名称。

这应该做你正在寻找的。

于 2012-04-14T14:56:01.330 回答
1

IDENTITY在 SQL Server 中

如果你需要知道你的新 ID 是什么同时INSERT-ing 数据,使用OUTPUT语句子句INSERT- 所以新行的副本被放入 table-type 参数。

如果由于某种原因在 SQL 中生成唯一 ID 不适合您,请在您的应用程序中生成 GUID - GUID 具有非常高的唯一性(但实际上并不能保证)。SQL Server 为列提供了专用的 GUID 类型 - 它被称为uniqueidentifier.

http://msdn.microsoft.com/en-us/library/ms187942.aspx

于 2012-04-14T12:57:10.193 回答