我将在Vertica数据库中创建一些表,以便为其提供全局唯一标识符来唯一标识每行。请建议如何做?Vertica中的全局唯一标识符
1
A
回答
0
请参阅documentation:
递增值对象的类型
- 命名序列生成升序或降序顺序的唯一号码的数据库对象。当应用程序在表或表达式中需要唯一标识符时,它们最常用。一旦命名序列返回一个值,它就再也不会返回相同的值。命名的序列是独立的对象,虽然你可以在表中使用它们的值,但它们不是从属于它们的。
- 自动增加列值:仅适用于数字列类型的序列。当向表中添加新行时,自动递增序列会自动为该列分配下一个增量序列值。
- 标识列:仅适用于数字列类型的序列。
0
命名的顺序就是你要找的。您可以使用同一顺序的多个表:
-- 2 tables...
CREATE TABLE tst (id INT, value varchar(10));
CREATE TABLE tst2 (id INT, value varchar(10));
-- 1 sequence...
CREATE SEQUENCE tst_seq;
-- ... said sequence is used by both tables
ALTER TABLE tst ALTER COLUMN id set default NEXTVAL('tst_seq');
ALTER TABLE tst2 ALTER COLUMN id set default NEXTVAL('tst_seq');
-- testing...
INSERT INTO tst (value) VALUES ('tst');
INSERT INTO tst2 (value) VALUES ('tst2');
-- success!
=> SELECT * FROM tst;
id | value
----+---------
1 | tst
(1 row)
=> SELECT * FROM tst2;
id | value
----+----------
2 | tst2
(1 row)
然后NEXTVAL('named_sequence')
,创建表的过程这里使用,是NEWID()
你正在寻找的等价物。
相关问题
- 1. SQL Server全局唯一标识符
- 2. Javascript GUID(全局唯一标识符)生成器说明
- 3. 唯一标识符
- 4. NSManagedObject的唯一标识符
- 5. SlideMaster的唯一标识符
- 6. PC的唯一标识符
- 7. Mac的唯一标识符?
- 8. 在linux下生成全局唯一标识的参数
- 9. 正在使用主标识符的唯一标识符更安全吗?
- 10. 唯一文件标识符
- 11. XHTML唯一标识符
- 12. 唯一标识符策略
- 13. MySQL唯一标识符
- 14. UITableViewCell唯一标识符?
- 15. 乱码的唯一标识符SQLite中
- 16. 本体中的唯一标识符
- 17. 创建一个全球唯一的Android标识符
- 18. excel中增量唯一标识符
- 19. 在TSQL中增加唯一标识符
- 20. NodeJS Express - 全球唯一请求标识
- 21. 跨表的唯一标识符
- 22. 写脚本的唯一标识符?
- 23. Android手机的唯一标识符
- 24. Flash安装的唯一标识符
- 25. 用户的唯一标识符
- 26. Vertica中未参数化的标识列
- 27. 唯一标识Mailitem
- 28. Objective-c iPhone NSTimer唯一标识符
- 29. SQL Server唯一标识符与整数
- 30. 谷歌OpenID唯一标识符问题
谢谢克米特。 Vertica是否包含像SQL Server中的NEWID()这样的函数? – San 2014-11-25 09:29:59
@San不,它不。请参阅文档中的序列。 – Kermit 2014-11-25 13:08:05