更新或删除值 Vertica
Update or remove value Vertica
我有下一个sql结构table:
id | account_id | app_id | setting | value
示例数据:
1 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | recipients | taras@gmail.com
2 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | day | monday
3 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | count | 1234
如果我向数据库发送新值或如果请求中不存在,则需要删除此数据。
如果我发送 (recipients, day, count) 新值更新现有数据,但如果我只发送 (recipients, day) 更新此数据并删除 count.
我尝试使用下一个代码:
update settings
set setting='count', value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1';
但是这个脚本更新了 table 中的所有字段。
如何解决?
从输入来看,table 中的许多值对于 account_id
和 app_id
具有相同的值,因此当您是 运行 脚本时,它正在更新所有值。
如果您只想更新设置中带有 count
的行,请执行 -
update settings
set value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is not null and value <> '');
删除行
delete from settings
account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is null or value = '');
我有下一个sql结构table:
id | account_id | app_id | setting | value
示例数据:
1 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | recipients | taras@gmail.com
2 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | day | monday
3 | 8fb38bac-6896-49e8-ac92-4cf6300ccd6f | 1 | count | 1234
如果我向数据库发送新值或如果请求中不存在,则需要删除此数据。
如果我发送 (recipients, day, count) 新值更新现有数据,但如果我只发送 (recipients, day) 更新此数据并删除 count.
我尝试使用下一个代码:
update settings
set setting='count', value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1';
但是这个脚本更新了 table 中的所有字段。 如何解决?
从输入来看,table 中的许多值对于 account_id
和 app_id
具有相同的值,因此当您是 运行 脚本时,它正在更新所有值。
如果您只想更新设置中带有 count
的行,请执行 -
update settings
set value='1'
where account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is not null and value <> '');
删除行
delete from settings
account_id='8fb38bac-6896-49e8-ac92-4cf6300ccd6f' and app_id='1' and setting='count' and (value is null or value = '');