เดเดพเดฒเดพเดเดพเดฒเดเตเดเดณเดฟเตฝ, เดกเตเดตเดฒเดชเตเดชเตผเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเดฒเตเดเตเดเต เดเดฐเต เดเตเดเตเดเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดฎเตเดดเตเดตเตป เดคเดฟเดฐเดเตเดเตเดเตเดชเตเดชเต เดชเตเดฒเตเด เดจเตฝเดเตเด "เดเดตเดพเดเดคเตเดคเดฟเตฝ". เดเดฟเดฒเดชเตเดชเตเตพ เด เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเต เดตเดณเดฐเต เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเดเตเดเดณเตเดฃเตเดเต.
เดจเดฎเตเดเตเดเต "เดตเดฟเดชเดฐเตเดคเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต" เดชเตเดเดพเด, เด
เดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฐเตเดคเต, เดเดจเตเดคเตเดเตเดฃเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดเตเดเดจเต เดฎเดฟเดเดเตเดเดคเดพเดเตเดเดพเด.
เด เดญเตเดฏเตผเดคเตเดฅเดจ เดฌเตเดกเดฟเดฏเดฟเตฝ เดฎเตเดฒเตเดฏเดเตเดเดณเตเดเต เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ "เดเตพเดชเตเดชเตเดเตเดคเตเดคเตฝ"
เดเดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
query = "SELECT * FROM tbl WHERE id = " + value
... เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดคเตเดชเตเดฒเต:
query = "SELECT * FROM tbl WHERE id = :param".format(param=value)
เด เดฐเตเดคเดฟเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดชเดฑเดฏเตเดเดฏเตเด เดเดดเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดชเตเดชเตเดดเตเด เด
เดเตเดเดจเตเดฏเดพเดฃเต SQL เดเตเดคเตเดคเดฟเดตเดฏเตเดชเตเดชเดฟเดฒเตเดเตเดเตเดณเตเดณ เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เดชเดพเดค เดเตเดเดพเดคเต เดฌเดฟเดธเดฟเดจเดธเต เดฒเตเดเดฟเดเตเดเดฟเตฝ เด
เดงเดฟเด เดฒเตเดกเตเด, เดจเดฟเดเตเดเดณเตเดเต เด
เดจเตเดตเตเดทเดฃ เดธเตเดเตเดฐเดฟเดเดเต "เดชเดถ" เดเตเดฏเตเดฏเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฐเดพเดเตเดจเตเดจเต.
เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เด เดธเดฎเตเดชเดจเด เดญเดพเดเดฟเดเดฎเดพเดฏเดฟ เดจเตเดฏเดพเดฏเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเต. เดชเดพเตผเดเตเดเตเดทเดจเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด เดเตเดเตเดคเตฝ เดเดพเดฐเตเดฏเดเตเดทเดฎเดฎเดพเดฏ เดชเตเดฒเดพเดจเดฟเดจเดพเดฏเดฟ PostgreSQL เดชเดคเดฟเดชเตเดชเตเดเตพ 10-เดฒเตเด เดคเดพเดดเตเดฏเตเด. เด เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเตฝ, เด เดญเตเดฏเตผเดคเตเดฅเดจ เดฌเตเดกเดฟเดฏเตเดเต เด เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเด เดเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดเตเดฏเตเดค เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเดพเดคเต เดธเตเดเดพเตป เดเตเดฏเตเดค เดตเดฟเดญเดพเดเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต.
$n เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ
เดเดชเดฏเตเดเดฟเดเตเดเตเด
เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเดเต เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเดฃเตเดฃเด
เด เดเตเดเดพเดคเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดฎเตเตปเดเตเดเตเดเดฟ เดชเดพเดธเดพเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ เดชเตเดฐเดถเตเดจเดเตเดเตพ เดจเดฎเตเดฎเต เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด:
... id IN ($1, $2, $3, ...) -- $1 : 2, $2 : 3, $3 : 5, ...
เดจเดฟเดเตเดเตพ เด เดซเตเดฎเดฟเตฝ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดเดชเตเดเตเดทเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดคเต เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดเตเดคเตเดคเดฟเดตเดฏเตเดชเตเดชเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเดณเต เดฐเดเตเดทเดฟเดเตเดเตเดฎเตเดเตเดเดฟเดฒเตเด, เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดถ / เดชเดพเดดเตเดธเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดคเดฏเดฟเดฒเตเดเตเดเต เด เดคเต เดจเดฏเดฟเดเตเดเตเด. เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเดเต เดเดฃเตเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดชเตเดทเดจเตเด. เดเดฐเต เดคเดตเดฃเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดเดคเดฟเดจเดเด เดฎเดฟเดเดเตเดเดคเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเตเดเดพเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดฎเดพเดคเตเดฐเด เดชเดพเดธเตเดธเดพเดเตเดเดฟเดฏเดพเตฝ เดฎเดคเดฟ เดเดฐเต เด เดฑเตเดฏเตเดเต เดธเตเดฐเดฟเดฏเดธเต เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเด:
... id = ANY($1::integer[]) -- $1 : '{2,3,5,8,13}'
เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เด เดฑเต เดคเดฐเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดตเตเดฏเดคเตเดฏเดพเดธเด. เดเดจเตเดจเดพเตฝ เดเดคเต เดชเตเดฐเดถเตโเดจเดเตเดเดณเตเดฃเตเดเดพเดเตเดเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดเตเดเตพ เดเดตเดฟเดเตเดฏเดพเดฃเต เด เดญเดฟเดธเดเดฌเตเดงเดจ เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดเดเตเดเตพเดเตเดเต เดฎเตเตปเดเตเดเตเดเดฟ เด เดฑเดฟเดฏเดพเด.
เดธเดพเดฎเตเดชเดฟเตพ เดเตเดฎเดพเดฑเตเดฑเด (เดฎเดพเดเตเดฐเดฟเดเตเดธเต)
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดต "เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ" เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพ เดธเตเดฑเตเดฑเตเดเตพ เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฒเตเดฒเดพเดคเตเดคเดฐเด เดเดชเตเดทเดจเตเดเดณเตเดฎเดพเดฃเต:
INSERT INTO tbl(k, v) VALUES($1,$2),($3,$4),...
เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเต "เดฑเต-เดเตเดฒเตเดฏเดฟเดเดเต" เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเด เดชเตเดฐเดถเตเดจเดเตเดเตพเดเตเดเต เดชเตเดฑเดฎเต, เดเดคเต เดเดเตเดเดณเต เดจเดฏเดฟเดเตเดเตเด เดเตผเดฎเตเดฎเดฏเดฟเดฒเตเดฒ เดเตเดเดพเดคเต เดธเตเตผเดตเตผ เดคเดเดฐเดพเดฑเตเด. เดเดพเดฐเดฃเด เดฒเดณเดฟเดคเดฎเดพเดฃเต - เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดชเดฟเดเดฟ เด เดงเดฟเด เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเตเดเดพเดคเต เดธเตเดฑเตเดฑเดฟเดฒเต เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเดเต เดเดฃเตเดฃเด เดฌเดฟเดธเดฟเดจเดธเต เดฒเตเดเดฟเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดทเตโเดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดฎเดพเดคเตเดฐเด เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดเตเดฒเดฟเดจเดฟเดเตเดเตฝ เดเตเดธเตเดเดณเดฟเตฝ เด เดคเต เดเดพเดฃเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต $9000-เตฝ เดเตเดเตเดคเดฒเตเดณเตเดณ "เดจเดฎเตเดชเตผ" เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ - เด เดฐเตเดคเดฟเดฏเดฟเตฝ เดเตเดฏเตเดฏเดฐเตเดคเต.
เดเตเดฆเตเดฏเด เดคเดฟเดฐเตเดคเตเดคเดฟเดฏเตเดดเตเดคเดพเด, เดเดคเดฟเดจเดเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต "เดฐเดฃเตเดเต-เดคเดฒ" เดธเตเดฐเดฟเดฏเดฒเตเดธเตเดทเตป:
INSERT INTO tbl
SELECT
unnest[1]::text k
, unnest[2]::integer v
FROM (
SELECT
unnest($1::text[])::text[] -- $1 : '{"{a,1}","{b,2}","{c,3}","{d,4}"}'
) T;
เด
เดคเต, เดเดฐเต เด
เดฑเตเดฏเตโเดเตเดเตเดณเตเดณเดฟเดฒเต "เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ" เดฎเตเดฒเตเดฏเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด
เดต เดเดฆเตเดงเดฐเดฃเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดซเตเดฐเตเดฏเดฟเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
เด เดฐเตเดคเดฟเดฏเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เด
เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดซเตเตฝเดกเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดคเดฟเดฐเดเตเดเตเดเตเดชเตเดชเต "เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเดเดพเตป" เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต.
unnest, unnest,โฆ
เดเดพเดฒเดพเดเดพเดฒเดเตเดเดณเดฟเตฝ เดเดพเตป เดธเตเดเดฟเดชเตเดชเดฟเดเตเด "เดจเดฟเดฐเดเดณเตเดเต เดจเดฟเดฐเดเตพ" เดเดจเตเดจเดคเดฟเดจเตเดชเดเดฐเด เดเดเดจเตเดจเตเดชเตเดเดพเดจเตเดณเตเดณ เดเดชเตเดทเดจเตเดเตพ เดเดฃเตเดเต.
SELECT
unnest($1::text[]) k
, unnest($2::integer[]) v;
เด เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต, เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเดฟเดฐเดเตพเดเตเดเดพเดฏเดฟ เดฎเตเดฒเตเดฏเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดคเตเดฑเตเดฑเต เดธเดเดญเดตเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดคเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดจเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต เด เดชเตเดฐเดคเตเดเตเดทเดฟเดค เดซเดฒเดเตเดเตพ, เดเดคเต เดธเตเตผเดตเตผ เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฏเตเด เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
-- $1 : '{a,b,c}', $2 : '{1,2}'
-- PostgreSQL 9.4
k | v
-----
a | 1
b | 2
c | 1
a | 2
b | 1
c | 2
-- PostgreSQL 11
k | v
-----
a | 1
b | 2
c |
JSON
เดชเดคเดฟเดชเตเดชเต 9.3 เดฎเตเดคเตฝ, เดชเตเดธเตเดฑเตเดฑเตโเดเตเดฐเตเดเดธเตโเดเตเดฏเตเดเดฒเตเดฒเดฟเดจเต json เดคเดฐเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดฃเตเดเต. เด เดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเดณเตเดเต เดเตปเดชเตเดเตเดเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เด เดตเดฟเดเตเดคเตเดคเดจเตเดจเต เดฐเตเดชเดชเตเดชเตเดเตเดคเตเดคเดพเด SQL เด เดจเตเดตเตเดทเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ json เดเดฌเตเดเดเตเดฑเตเดฑเต:
SELECT
key k
, value v
FROM
json_each($1::json); -- '{"a":1,"b":2,"c":3,"d":4}'
เดฎเตเดฎเตเดชเดคเตเดคเต เดชเดคเดฟเดชเตเดชเตเดเตพเดเตเดเตเด, เดเดคเต เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต เดเดฐเต (เดนเตเดธเตเดฑเตเดฑเตเตผ), เดเดจเตเดจเดพเตฝ hstore-เดฒเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดตเดธเตเดคเตเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดเตเดทเดชเตเดชเตเดเตเดจเตเดจ เดถเดฐเดฟเดฏเดพเดฏ "เดฎเดเดเตเดเตฝ" เดชเตเดฐเดถเตเดจเดเตเดเตพเดเตเดเต เดเดพเดฐเดฃเดฎเดพเดเตเด.
json_populate_recordset
"เดเตปเดชเตเดเตเดเต" json เด เดฑเตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดเดฟเดฒ เดเตเดฌเดฟเดณเดฟเตฝ เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดชเตเดเตเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเตปเดเตเดเตเดเดฟ เด เดฑเดฟเดฏเดพเดฎเตเดเตเดเดฟเตฝ, json_populate_recordset เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต "เดกเดฟเดฑเดซเดฑเตปเดธเดฟเดเดเต" เดซเตเตฝเดกเตเดเดณเดฟเตฝ เดงเดพเดฐเดพเดณเด เดธเดเดฐเดเตเดทเดฟเดเตเดเดพเดจเตเด เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดคเดฐเดเตเดเดณเดฟเดฒเตเดเตเดเต เดเดพเดธเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเดจเตเด เดเดดเดฟเดฏเตเด:
SELECT
*
FROM
json_populate_recordset(
NULL::pg_class
, $1::json -- $1 : '[{"relname":"pg_class","oid":1262},{"relname":"pg_namespace","oid":2615}]'
);
json_to_recordset
เด เดซเดเดเตโเดทเตป เดเตเดฌเดฟเตพ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดพเดคเต เดชเดพเดธเดพเดเตเดเดฟเดฏ เดเดฌเตโเดเดเตเดฑเตเดฑเตเดเดณเตเดเต เดจเดฟเดฐเดฏเต เดเดฐเต เดคเดฟเดฐเดเตเดเตเดเตเดชเตเดชเดฟเดฒเตเดเตเดเต โเดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดโ:
SELECT
*
FROM
json_to_recordset($1::json) T(k text, v integer);
-- $1 : '[{"k":"a","v":1},{"k":"b","v":2}]'
k | v
-----
a | 1
b | 2
เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเด
เดเดจเตเดจเดพเตฝ เดเตเดฎเดพเดฑเตเดฑเด เดเตเดฏเตเดค เดธเดพเดฎเตเดชเดฟเดณเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเต เดตเดณเดฐเต เดตเดฒเตเดคเดพเดฃเตเดเตเดเดฟเตฝ, เด เดคเต เดเดฐเต เดธเตเดฐเดฟเดฏเดฒเตเดธเตเดกเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดเดฑเดฟเดฏเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต, เดเดฟเดฒเดชเตเดชเตเตพ เด เดธเดพเดงเตเดฏเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดเดคเดฟเดจเต เดเดฑเตเดฑเดคเตเดคเดตเดฃ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดตเดฒเดฟเดฏ เดฎเตเดฎเตเดฎเดฑเดฟ เด เดฒเตเดเตเดเตเดทเตป. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดเดฐเต เดฌเดพเดนเตเดฏ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดตเดฒเดฟเดฏ เดฌเดพเดเตเดเต เดเดตเดจเตเดฑเต เดกเดพเดฑเตเดฑ เดถเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เดคเตเดเตผเดจเตเดจเต เด เดคเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดญเดพเดเดคเตเดคเต เดเดฑเตเดฑเดคเตเดคเดตเดฃ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต.
เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฑเตเดฑเดตเตเด เดฎเดฟเดเดเตเด เดชเดฐเดฟเดนเดพเดฐเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฏเดฟเดฐเดฟเดเตเดเตเด
CREATE TEMPORARY TABLE tbl(k text, v integer);
...
INSERT INTO tbl(k, v) VALUES($1, $2); -- ะฟะพะฒัะพัะธัั ะผะฝะพะณะพ-ะผะฝะพะณะพ ัะฐะท
...
-- ััั ะดะตะปะฐะตะผ ััะพ-ัะพ ะฟะพะปะตะทะฝะพะต ัะพ ะฒัะตะน ััะพะน ัะฐะฑะปะธัะตะน ัะตะปะธะบะพะผ
เดฐเตเดคเดฟ เดจเดฒเตเดฒเดคเดพเดฃเต เดตเดฒเดฟเดฏ เดตเตเดณเตเดฏเดเตเดเดณเตเดเต เด
เดชเตเตผเดตเตเดตเดฎเดพเดฏเดฟ เดเตเดฎเดพเดฑเตเดฑเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดกเดพเดฑเตเดฑ.
เด
เดคเดฟเดจเตเดฑเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดเดจ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดตเตเดเตเดทเดฃเดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต, เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเด "เดชเดคเดฟเดตเต" เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดธเดตเดฟเดถเตเดทเดคเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. pg_class เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเดณเดฟเตฝ, เดเดชเตเดชเด pg_type, pg_depend, pg_attribute, pg_attrdef, ... - เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ.
เด
เดคเดฟเดจเดพเตฝ, เดเดฐเตเดจเตเดจเดฟเดจเตเด เดงเดพเดฐเดพเดณเด เดนเตเดฐเดธเตเดตเดเดพเดฒ เดเดฃเดเตเดทเดจเตเดเดณเตเดณเตเดณ เดตเตเดฌเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเดฟเตฝ, เด
เดคเตเดคเดฐเด เดเดฐเต เดชเดเตเดเดฟเด เดเดฐเต เดคเดตเดฃเดฏเตเด เดชเตเดคเดฟเดฏ เดธเดฟเดธเตเดฑเตเดฑเด เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเด, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฃเดเตเดทเตป เด
เดเดฏเตเดเตเดเตเดฎเตเดชเตเตพ เด
เดต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด. เดเดเตเดตเดฟเตฝ, TEMP TABLE-เดจเตเดฑเต เด
เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดเดชเดฏเตเดเด pg_catalog-เดฒเต เดชเดเตเดเดฟเดเดเดณเตเดเต "เดตเตเดเตเดเดคเตเดคเดฟเดฒเตเดเตเดเต" เดจเดฏเดฟเดเตเดเตเดจเตเดจเต เด
เดต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดชเดฒ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเดพเดเตเดเตเดจเตเดจเต.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดคเต เดจเตเดฐเดฟเดเดพเตป เดเดดเดฟเดฏเตเด เดชเตเดฐเดฟเดฏเตเดกเดฟเดเต เดชเดพเดธเต เดตเดพเดเตเดตเด เดซเตเตพ เดธเดฟเดธเตเดฑเตเดฑเด เดเดพเดฑเตเดฑเดฒเตเดเต เดชเดเตเดเดฟเดเดเตพ เด
เดจเตเดธเดฐเดฟเดเตเดเต.
เดธเตเดทเตป เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ
เดเดฐเต SQL เดเตเดฆเตเดฏเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเดคเตเดคเต เดเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดตเดณเดฐเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฃเตเดจเตเดจเต เดเดฐเตเดคเตเด, เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพ เดเดคเต เดชเดฒเดชเตเดชเตเดดเตเด เดเตเดฏเตเดฏเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต. เด
เดคเดพเดฏเดคเต, เดจเดเดชเดเดฟเดเตเดฐเดฎเดชเดฐเดฎเดพเดฏ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต
เดเดฐเต เด เดเตเดเดพเดค เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเดเดเตเดเดพเตป $n-เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดจเตเด เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดธเตเดทเตป เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด เดซเดเดเตโเดทเดจเตเด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเดพเตป เดเดเตเดเดณเต เดธเดนเดพเดฏเดฟเดเตเดเตเด. เดจเดฟเดฒเดตเดฟเดฒเต_เดเตเดฐเดฎเตเดเดฐเดฃเด.
เดชเดคเดฟเดชเตเดชเต 9.2-เดจเต เดฎเตเดฎเตเดชเต, เดจเดฟเดเตเดเตพ เดฎเตเตปเดเตเดเตเดเดฟ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต
SET my.val = '{1,2,3}';
DO $$
DECLARE
id integer;
BEGIN
FOR id IN (SELECT unnest(current_setting('my.val')::integer[])) LOOP
RAISE NOTICE 'id : %', id;
END LOOP;
END;
$$ LANGUAGE plpgsql;
-- NOTICE: id : 1
-- NOTICE: id : 2
-- NOTICE: id : 3
เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจ เดฎเดฑเตเดฑเต เดจเดเดชเดเดฟเดเตเดฐเดฎ เดญเดพเดทเดเดณเดฟเตฝ เดฎเดฑเตเดฑเต เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดฃเต.
เดเตเดเตเดคเตฝ เดตเดดเดฟเดเตพ เด
เดฑเดฟเดฏเดพเดฎเต? เด
เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เดชเดเตเดเดฟเดเตเด!
เด
เดตเดฒเดเดฌเด: www.habr.com