3.2.8 在 SELECT 语句中使用 Rowid 值
数据库服务器将唯一的 rowid 指定给未分片的表中的行。实际上,rowid 是每个表中的隐藏
列。rowid 的顺序值没有任何特殊意义,可能根据 chunk 中的物理数据的位置的不同而变
化。可以使用 rowid 来找到与表中的某行相关联的内部记录号。分片表中的行不自动包含
rowid 列。
建议您在应用程序中使用主键而不是 rowid 作为访问的方法。因为主键是用 SQL 的
ANSI 规范定义的,所以使用它们来访问数据提高了应用程序的可移植性。另外,当数据
库服务器使用主键时,它访问分片表中的数据所需的时间比使用rowid 时访问相同数据所
需的时间要要少。
有关 rowid 的更多信息,请参阅《GBase 8s 管理员指南》。
下列查询在 Projection 子句中使用 rowid 和星号(*)来检索 manufact 表中的每一行及其
相应的 rowid。
图: 查询
SELECT rowid, * FROM manufact;
图: 查询结果
不要在 permanent 表中存储 rowid 或尝试将它用作外键。如果删除了一个表然后从外部数
据重新装入它,那么所有 rowid 都将不同。