DELETE

使用 DELETE 命令可从现有表中删除一行或多行数据。

语法

DELETE FROM [database_name.]object_name
 [ VIA value_of_primary_key_column,... ]
 [ WHERE condition ];

使用 WHERE 子句

如果包含 WHERE 子句,那么将仅更新符合 condition 中指定的条件的行。 如果未在 WHERE 子句中指定条件,那么将更新所有行。

WHERE 子句可以执行与Tivoli Netcool/OMNIbus 早期版本中 VIA 子句相同的功能。 如果在 WHERE 子句中指定了主键,ObjectServer将不会执行全表扫描,而是直接访问使用主键的记录。

以下示例将除去 alerts.status 表中 Node 字段的值等于 Fred的所有行:
delete from alerts.status where Node = 'Fred';

使用 VIA 子句

对于 Tivoli Netcool/OMNIbus V7.2 ,不推荐使用 VIA 子句,但该子句仍然有效。 它的函数现在可以由 WHERE 子句执行。

如果您知道要删除的行的主键值,那么可以使用 VIA 子句指定该值。 如果有多个主键列,那么必须按顺序指定值并以逗号 (,) 分隔。 字符串值必须用单引号 (') 括起。

如果要更新多行,那么必须将每行的主键括在方括号 ([]) 中并以逗号 (,) 分隔。

VIA 子句对于记录 SQL 很有用。 例如,它可用于让触发器的维护者知道正在使用主键执行 DELETE。

以下示例显示如何使用 DELETE VIA 命令删除多个主键:
delete from alerts.status via ['722Identifier722'],['294Identifier294'];