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'];