SQL中的函数会给我一个独特的int吗?

时间:2019-10-20 17:11:37

标签: sql sql-server

我试图在我的一个数据库中输入一行,但是我想确保输入的主键是唯一的。我的主键是int。我已经尝试过使用newid(),但这并不能使我理解。如果有办法我可以让newid()仅返回一个int,或者如果另一个函数可以给我一个唯一的int,我将使用它。

3 个答案:

答案 0 :(得分:3)

您可以将列的定义更改为cannot import name 'function_name' from 'folder_name.views' ,然后在插入行时不指定值,并且ID会自动递增。

有关更多信息,请参见https://www.w3schools.com/sql/sql_autoincrement.asp

答案 1 :(得分:2)

请注意随机主键,特别是如果它也是聚簇索引时。这很可能导致分配文件系统IO。 请改用自动递增身份。

答案 2 :(得分:1)

一个提供唯一整数的对象是sequences

您首先需要创建一个序列:

CREATE SEQUENCE MyNewID START WITH 1 INCREMENT BY 1;  

然后您可以每次检索调用NEXT VALUE的新ID:

SET @MyNewID = NEXT VALUE FOR MyNewID;