我正在使用SQL Server 2000中的一个数据库,该数据库为每个使用它所绑定的应用程序的用户使用GUID.不知何故,两个用户最终得到了相同的GUID.我知道微软使用一种算法来生成一个随机GUID,这个GUID极有可能导致碰撞,但是碰撞仍然可能吗?
我正在使用postgresql,并想知道有多大
id INTEGER PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)
可以得到比较
id SERIAL PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)
在java中,a int是4个字节(32位),因此它可以达到2,147,483,647.在postgresql中是这种情况吗?如果是这样意味着我不能超过2,147,483,647行?
我认为这是一个错误,但在阅读了这篇文章后,我发现这是一个新功能http://www.codeproject.com/Tips/668042/SQL-Server-2012-Auto-Identity-Column-Value-Jump-Is SQL Server 2012.
此功能会自动将您的上一个标识列值增加1000(int)以获取新行(10000为bigints).
我仍在尝试文章中给出的解决方案,但如果在客户端发生这种跳转,我没有任何问题.因为我向客户端显示了哈希版本的ID.这是他自己的要求而不是我的要求.
但我想知道如果这些标识列的值超过数据类型的范围(int或bigint)会怎么样?它如何处理色谱柱的范围和大小?
sql sql-server auto-increment identity-column sql-server-2012
在插入,我应该怎么唯一设置的值access_token,以一个随机字符串和值返回给客户端?
我有:
CREATE TABLE user (
id serial PRIMARY KEY,
access_token char(32) NOT NULL UNIQUE,
joined timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)
数据库服务器:PostgreSQL
应用服务器:Sinatra(Ruby)
客户端:iOS