返回首页

gbase数据、南大通用产品文档:GBase8sRENAME TABLE 语句

更新日期:2024年09月11日

使用 RENAME TABLE 语句来更改表的名称。RENAME TABLE 语句为对 SQL
的 ANSI/ISO 标准的扩展。
语法

元素
描述
限制
语法
new_table old_table 的新名

在该数据库的序列、表、视
图和同义词的名称之中必须
为唯一的
标识符
old_table new_table 替代的
名称
必须为在当前的数据库中注
册的表的名称(非同义词)
标识符
owner
该表的当前所有者
必须为该表的所有者。
所有者名称
用法
要重命名表,您必须为该表的所有者,或有对该表的 ALTER 权限,或有对该数
据库的 DBA 权限。
如果 old_table 为同义词,而不是表的名称,则发生错误。
old_table 可为 CREATE EXTERNAL TABLE 语句定义的对象。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 800
重命名了的表保留在当前的数据库中。您不可使用 RENAME TABLE 语句来将表
从当前的数据库移到另一数据库,也不能重命名位于另一数据库中的表。
您不可通过重命名表来更改表 owner。如果您试图为该表的新名称指定 owner. 标
识符,则发生错误。
当更改表所有者时,您必须同时指定旧的所有者和新的所有者。
在符合 ANSI 的数据库中,如果您不是 old_table 的所有者,则必须指定
owner.old_table 作为该表的旧的名称。
如果通过当前数据库中的视图引用 old_table,则在 sysviews 系统目录表中更新
该视图定义来反映新的表名称。要获取更多关于 sysviews 系统目录表的信息,请
参阅 GBase 8s SQL 参考指南。
如果 old_table 为触发器表,则数据库服务器采取这些活动:

替代在触发器定义中的表的名称,但不在任何触发器活动之中表名称出现
的任何地方替代它

如果新的表名称与该触发器定义的 REFERENCING 子句中的相关名称相
同,则返回错误
当执行该触发器时,如果它遇到不存在的表的表名称,则数据库服务器返回错
误。
使用 RENAME TABLE 来重新组织表
当您需要重新组织现有的表的模式时,RENAME TABLE 语句可为 ALTER
TABLE 语句的有用的替代手段。例如,假如您决定更改 stores 演示数据库的
items 表中列的顺序。您可通过下列这些步骤重新组织 items 表,将 quantity
列从第五个位置移到第三个位置:
1. 创建新表 new_table,在第三个位置包含列 quantity。
2. 以来自当前的 items 表的数据填充该表。
3. 删除旧的 items 表。
4. 以标识符 items 重命名 new_table。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 801
下列示例使用 RENAME TABLE 语句作为最后的步骤:
CREATE TABLE new_table
(
item_num SMALLINT,
order_num INTEGER,
quantity SMALLINT,
stock_num SMALLINT,
manu_code CHAR(3),
total_price MONEY(8)
);
INSERT INTO new_table
SELECT item_num, order_num, quantity, stock_num,
manu_code, total_price FROM items;
DROP TABLE items;
RENAME TABLE new_table TO items;

VP 列表
在8s 集群节点监控导航栏,点击数据库监控的VP 列表,即进入VP 列表监
控界面。
该界面以列表的方式显示数据库中VP 的情况。
VP 列表界面显示如下:

功能说明
列权限表,给出关于列权限的信息。
表结构说明
表5- 210 表结构信息说明:




GRANTEE
被赋予权限的用户名
TABLE_CATALOG
表登记目录
TABLE_VC
列所在表所属数据库所在的虚拟集群名
TABLE_SCHEMA
列所在表所属的数据库名
TABLE_NAME
列所在表名
COLUMN_NAME
列名
PRIVILEGE_TYPE
权限类型
IS_GRANTABLE
是否具有赋予权限的权限