我有2张桌子:
UNIT:
integer id (PKEY)
varchar symbol
OPERATION:
integer id (PKEY)
integer unit_id (FKEY to UNIT table) accepts null
我需要根据选择查询结果构造一些脚本,但是我不知道如何正确编写它。
我需要实现的东西,用伪sql编写:
if (select count(*) from UNIT where symbol = 'some_text' = 0)
then raise exception 'not found!'
else
update OPERATION set unit_id = (select id from unit where symbol = 'rg' limit 1) where unit_id = null;
因此,当UNIT表不包含任何符号为“ some_text”的记录时,应引发异常。
否则,应该对unit_id列的OPERATION表进行更新-将空值替换为第一个UNIT记录ID值。
答案 0 :(得分:1)
也许您可以创建一个函数
CREATE FUNCTION update_operation_unit(IN CHARACTER VARYING(250) symbol_text) RETURNS VOID LANGUAGE plpgsql AS $$ [...] $$
此功能可以完全运行您上面描述的伪代码。