하면 할 수록 궁금증이 생기는(?) 재미있는(?) Postgresql 입니다..
drop table reorders;
create table reorders
(
item_id integer,
message text
);
create function reorders(min_stock int4) returns integer as $$
declare <= declare 에 대한 설명 좀..
reorder_item integer;
reorder_count integer;
stock_row stock%rowtype;
msg text;
begin
select count(*) into reorder_count from stock
where quantity <= min_stock;
for stock_row in select * from stock <== 이 for문은 무슨 뜻인지요?
where quantity <= min_stock
loop <== sql 문에서 반복문이라고 이해하면 되는지요?
declare
item_row item%rowtype;
begin
select * into item_row from item
where item_id = stock_row.item_id;
msg = 'order more ' || <= 이것은 msg 에 대한 조건문 인가요?
item_row.description || 's at ' ||
to_char(item_row.cost_price,'99.99');
insert into reorders
values (stock_row.item_id, msg);
end;
end loop;
return reorder_count;
end;
$$ language plpgsql;
프로그래밍 언어에서 쓰던 것과 같은 수준에서 생각하니.. 좀 헷갈립니다.. for 같은 경우에는 for 반복문하고 다르니.. 무슨 뜻인지..
이해가 안되네요..
나머지 인용문들은 sql 문들이다 보니.. 대충 짐작하지만..
mysql 에서 보지 못한 독특한 쿼리이네요..
|