返回首页

gbase数据、南大通用产品文档:GBase8s复杂的删除条件

更新日期:2024年09月11日

DELECT 语句中的 WHERE 子句可与 SELECT 语句中的一样复杂。它可包含通过 AND
和 OR 连接的多个条件,且它可能包含子查询。
假设您发现 stock 表的某些行包含不正确的制造商代码。
您不想更新它们,
而是想要删除它
们以便重新输入它们。您知道,与正确的那些行不一样,这些行在 manufact 表中没有相匹

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

配的行。由于这些不正确的行在 manufact 表中没有相匹配的行,因此您可以编写下例中所
示的 DELETE 语句:
DELETE FROM stock
WHERE 0 = (SELECT COUNT(*) FROM manufact
WHERE manufact.manu_code = stock.manu_code);
该子查询对匹配的 manufact 行数进行计数;对 stock 的正确的行计数为 1,对不正确的行
计数为 0。选取不正确的行来删除。
提示: 使用复杂的条件来开发 DELETE 语句的一种方法是,先开发精确地返回要删除的行的
SELECT 语句。将它编写为 SELECT *;当它返回所期望的行集时,将SELECT * 更改为读
取 DELETE,并再执行它一次。
DELETE 语句的 WHERE 子句不可使用测试同一表的子查询。即,当您从 stock 进行删除
时,您不可在也从 stock 中选择的 WHERE 子句中使用子查询。
此规则的关键在于 FROM 子句。如果在 DELETE 语句的 FROM 子句中命名表,则该表
不可还出现在 DELECT 语句的子查询的 FROM 子句中。

Encoding or code set not supported
DB_LOCALE 或 CLIENT_LOCALE 变量中输入的编码或代码集无效。
请参阅支持代码集转换,获取有效的代码集。

GBA-01BR-0077
错误码
错误标识
错误显示信息
GBA-01BR-0077

Get Table Create SQL Error
分析与建议
检查表恢复中的元数据文件夹的内容

GBase 8a MPP Cluster 产品手册
7 附录
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1702
错误出现原因
获取表建表DDL 错误
分析与建议
确定server 状态,是否能够执行show create table