返回首页

gbase数据、南大通用产品文档:GBase8sstoragepool purge 参数:删除存储池条目

更新日期:2024年09月11日

(SQL 管理 API)
随同 admin() 或 task() 函数,使用 storagepool purge 参数来删除所有存储池条目、
有 Full 状态的存储池条目,或有 Error 状态的存储池条目。
语法

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 807 -


用法
使用 storagepool purge all 参数来删除存储池中的所有条目。
使用 storagepool purge full 参数来删除所有状态为 Full 的存储池条目。
使用 storagepool purge errors 参数来删除所有状态为 Error 的存储池条目。
sysadmin 数据库中的 storagepool 表包含显示存储池中每一条目的状态的列。
示例
下列命令删除所有状态为 Full 的存储池条目:
EXECUTE FUNCTION task("storagepool purge full");

使用“编辑存储过程”功能,您可以查看该存储过程的定义信息。
在“数据库导航”中,右键单击Schema 节点下的存储过程节点,选择菜单
中的“编辑存储过程”菜单项,如下图所示:

GBaseDataStudio 管理工具手册
- 68 -
南大通用数据技术股份有限公司
图5- 396 查看存储过程菜单项
选择“编辑存储过程”菜单项后,管理器会打开存储过程定义信息,如下
图所示:
图5- 397 存储过程定义信息
在如上编辑界面的“源”编辑框中编辑存储过程定义信息,编辑完成后点
击工具栏中的“保存”按钮或者点击“Ctrl+S”来保存,弹出保存确认界面如

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 69 -
下图所示:
图5- 398 新建存储过程编辑
点击“保存”按钮,您可以保存这次新建存储过程;点击“复制”按钮,
您可以将新建存储过程的SQL 语句拷贝到粘贴板;点击“取消”按钮,您可以
取消本次保存。保存后将刷新存储过程内容。

依赖于该列是命名了的 ROW 类型还是未命名的 ROW 类型,您用于更新 row 类型值的
语法会不同。本部分描述那些差异,还描述如何为 ROW 类型的字段指定 NULL 值。
更新包含命名了的 row 类型的行
要更新在命名了的 ROW 类型上定义的列,您必须指定所有 ROW 类型的字段。例如,下
列语句仅更新 employee 表中 address 列的 street 和 city字段,
但每一 ROW 类型的字段必须
包含一个值(允许 NULL 值):
UPDATE employee
SET address = ROW('103 California St',
San Francisco', address.state, address.zip)::address_t
WHERE name = 'zawinul, joe';
在此示例中,从该行中读取 state 和 zip 字段的值,然后立即重新插入到该行内。仅更
新 address 列的 street 和 city 字段。
当您更新在命名了的 ROW 类型上定义的列的字段时,
您必须使用 ROW 构造函数,
并将
该行值强制转型为适当的命名了的 ROW 类型。

更新包含未命名的 row 类型的行
要更新在未命名的 ROW 类型上定义的列,您必须指定该 ROW 类型的所有字段。例如,
下列语句仅更新 student 表中 address 列的 street 和 city字段,
但 ROW 类型的每一字段都必
须包含一个值(允许 NULL 值):
UPDATE student
SET s_address = ROW('13 Sunset', 'Fresno',
s_address.state, s_address.zip)
WHERE s_name = 'henry, john';

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 174 -

要更新在未命名的 ROW 类型上定义的列的字段,
请始终在插入该字段值之前,
指定 ROW
构造函数。

为 row 类型的字段指定 Null 值
row 类型列的字段可包含 NULL 值。当您以 NULL 值插入到 row 类型字段内或更新
row 类型字段时,您必须将该值强制转型为那个字段的数据类型。
下列 UPDATE 语句展示您可以如何为命名了的 row 类型列的特定字段指定 NULL 值:
UPDATE employee
SET address = ROW(NULL::VARCHAR(20), 'Davis', 'CA',
ROW(NULL::CHAR(5), NULL::CHAR(4)))::address_t)
WHERE name = 'henry, john';
下列 UPDATE 语句展示您如何为 student 表的 address 列的 street 和 zip 字段指定 NULL
值。
UPDATE student
SET address = ROW(NULL::VARCHAR(20), address.city,
address.state, NULL::VARCHAR(9))
WHERE s_name = 'henry, john';
重要:
您不可为 row 类型列指定 NULL 值。
您仅可为 row 类型的个别的字段指定 NULL 值。