เบเบฒเบเบเบฑเปเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเปเบญเบเบเบฒเบ เบเปเบฒเบเบเบธเบเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบซเบผเบทเปเบกเปเบเบฐเบเบฑเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบฑเบเบซเบกเบปเบเบเปเปเบเบฑเบเบเปเบฒเบฎเปเบญเบเบเป "เบขเบนเปเบเบฒเบเปเบเบปเปเบฒ". เบเบฒเบโเบเบฑเปเบโเบเปเบฒเบโเปเบเปโเบเบปเบโเปเบซเบฑเบโเบงเบดโเบเบตโเปเบเปโเปเบ strange เบซเบผเบฒเบโเบชเปเบฒโเบฅเบฑเบโเบเบฑเบโเบซเบฒโเบเบตเปโ.
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบทเบเปเบเปเบเบดเปเบเบชเบดเปเบเบเบตเปเบเปเปเบเบงเบเปเบฎเบฑเบ, เปเบเบฑเบเบซเบเบฑเบ, เปเบฅเบฐเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบตเบเบงเปเบฒ.
เบเบฒเบเปเบชเปเบเปเบฒเปเบเบเบเบปเบเปเบเบปเปเบฒเปเบเปเบเบฎเปเบฒเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบเป
เปเบเบเบเบปเบเบเบฐเบเบดเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒ:
query = "SELECT * FROM tbl WHERE id = " + value
...เบซเบผเบทเปเบเบเบเบตเป:
query = "SELECT * FROM tbl WHERE id = :param".format(param=value)
เบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเบเบทเบเปเบงเบปเปเบฒ, เบเบฝเบเปเบฅเบฐ
เปเบเบทเบญเบเบชเบฐเปเบซเบกเบตเบเบตเปเปเบกเปเบ เปเบชเบฑเปเบเบเบฒเบเปเบเบเบเบปเบเบเบฑเบเบเบฒเบเบชเบฑเบเบขเบฒ SQL เปเบฅเบฐเบเบฒเบเปเบซเบผเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบฝเบงเบเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบเบธเบฅเบฐเบเบดเบ, เปเบเบดเปเบเบเบทเบเบเบฑเบเบเบฑเบเปเบซเป "เบเบฒเบง" เปเบชเบฑเปเบเบเปเบฒเบเบฒเบกเบเบญเบเบเปเบฒเบ.
เบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบ justified เบเบฒเบเบชเปเบงเบเบเบฝเบเปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ เบเบฒเบโเบเปเบฒโเปเบเปโเบเบฒเบโเปเบเปเบโเบเบฑเบโ เปเบ PostgreSQL เบฎเบธเปเบ 10 เปเบฅเบฐเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบเบเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบเบถเปเบ. เปเบเบชเบฐเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเบชเปเบงเบเบเบตเปเบชเบฐเปเบเบเปเบเปเบเบทเบเบเปเบฒเบเบปเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเบเบถเบเปเบเบดเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฒเบเบเบญเบ, เบเบฝเบเปเบเปเบเบปเบเบเบทเปเบเบเบฒเบเบเบญเบเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฒเบเบฎเปเบญเบเบเป.
$n-arguments
เบเบฒเบเบเปเบฒเปเบเป
เบเปเบฒเบเบงเบเบเบปเบงเปเบเบเบญเบเบญเบฒเบเบดเบงเปเบกเบฑเบ
เบเบฑเบเบซเบฒเบเบฐเบฅเปเบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเปเบฒเบเบเปเบฒเบเบงเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบ:
... id IN ($1, $2, $3, ...) -- $1 : 2, $2 : 3, $3 : 5, ...
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบญเบญเบเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบฎเบนเบเปเบเบเบเบตเป, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบเบฐเบเบปเบเบเปเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเบเบฒเบเบชเบฑเบเบขเบฒเบเบตเปเบกเบตเบเปเบฒเปเบฎเบ, เบกเบฑเบเบเบฑเบเบเปเบฒเปเบเบชเบนเปเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบฅเบงเบก / เปเบเบเบเปเบฒเบฎเปเบญเบเบเป. เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบเบถเปเบเบขเบนเปเบเบฑเบเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเปเบเปเบเบฝเบ. เบกเบฑเบเบเบตเบเบงเปเบฒเบเบฒเบเปเบฎเบฑเบเบกเบฑเบเบเบธเบเบเบฑเปเบ, เปเบเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเปเปเบกเบตเบกเบฑเบ.
เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเบเปเบฒเบเบเบฝเบเปเบเปเบซเบเบถเปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบกเบต เบเบฒเบเปเบเบฑเบเบเบปเบงเปเบเบ serialized array:
... id = ANY($1::integer[]) -- $1 : '{2,3,5,8,13}'
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฝเบเปเบเปเปเบกเปเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฝเบ argument เปเบเบฑเบเบเบฐเปเบเบ array เบเบตเปเบเปเบญเบเบเบฒเบเบขเปเบฒเบเบเบฑเบเปเบเบ. เปเบเปเบเบตเปเบเปเปเปเบเปเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฑเบเบซเบฒ, เปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบฅเปเบงเบเบซเบเปเบฒเปเบฅเปเบงเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบช.
เบเบฒเบโเปเบญเบโเบเบปเบงโเบขเปเบฒเบ (matrixโ)
เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบธเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบญเบเบเบธเบเบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบชเปเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเปเปเบกเบนเบ "เปเบเบซเบเบถเปเบเบเปเบฒเบฎเปเบญเบเบเป":
INSERT INTO tbl(k, v) VALUES($1,$2),($3,$4),...
เบเบญเบ เปเปเบทเบญ เปเบเบเบฒเบเบเบฑเบเบซเบฒเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบเบเปเบงเบ "เบเบฒเบเบเบดเบเบเบฒเบงเบเบทเบ" เบเบฒเบเบฎเปเบญเบเบเป, เบเบตเปเบเบฑเบเบชเบฒเบกเบฒเบ เบเบณ เบเบฒเบเบงเบเปเบฎเบปเบฒเปเบ เบญเบญเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ เปเบฅเบฐเปเบเบตเบเปเบงเบต crash. เปเบซเบเบเบปเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ - PG เบชเบฐเบซเบเบงเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเบเบฝเบ, เปเบฅเบฐเบเปเบฒเบเบงเบเบเบญเบเบเบฑเบเบเบถเบเปเบเบเบธเบเปเบเปเบเบทเบเบเปเบฒเบเบฑเบเบเบฝเบเปเบเปเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเปเบซเบเบเบปเบเบเบฒเบเบเบธเบฅเบฐเบเบดเบ. เปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฅเบฐเบเบตเบเบฒเบเบเปเบฒเบเบเบฅเบตเบเบดเบเบเปเบญเบเบเปเบญเบเปเบเบดเปเบ เบเบฒเบเปเบเปเบเบฝเบ "เบเปเบฒเบเบงเบ" เปเบกเปเบเบซเบผเบฒเบเบเปเบงเบฒ $9000 - เบขเปเบฒเปเบฎเบฑเบเปเบเบเบเบตเป.
เปเบซเปเบเบฝเบเบเปเบฒเบฎเปเบญเบเบเปเบเบทเบเปเบซเบกเปเปเบเบเปเบเปเปเบฅเปเบง serialization "เบชเบญเบเบฅเบฐเบเบฑเบ".:
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;
เปเบกเปเบเปเบฅเปเบง, เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบฒ "เบเบฑเบเบเปเบญเบ" เบเบฒเบเปเบ array, เบเบงเบเปเบเบปเบฒเบเปเบญเบเบเบทเบเบญเปเบญเบกเบฎเบญเบเบเปเบงเบเบงเบปเบเบขเบทเบก.
เบกเบฑเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบเปเบงเบเบงเบดเบเบตเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบ "เบเบฐเบซเบเบฒเบ" เบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเบเบตเปเบกเบตเบเปเบฒเบเบงเบเปเบเบเบเบตเปเบเบปเบเปเบญเบเบกเบฑเบ.
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, PostgreSQL เบกเบตเบซเบเปเบฒเบเบตเปเปเบเบฑเบกเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฐเปเบเบ json. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบดเบเบฒเบกเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเปเบเบตเบเบเบทเปเบเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบญเบเบเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบญเบเบกเบฑเบเบขเบนเปเบเบตเปเบเบฑเปเบ json object เบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบญเบเบเบฒเบก SQL:
SELECT
key k
, value v
FROM
json_each($1::json); -- '{"a":1,"b":2,"c":3,"d":4}'
เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบงเบดเบเบตเบเบฒเบเบเบฝเบงเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ เปเบเปเบฅเบฐ(hstore), เปเบเป "convolution" เบเบตเปเบเบทเบเบเปเบญเบเบเบฑเบ escaping เบงเบฑเบเบเบธเบชเบฐเบฅเบฑเบเบชเบฑเบเบเปเบญเบเปเบ hstore เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฑเบเบซเบฒ.
json_populate_recordset
เบเปเบฒเบเปเบฒเบเบฎเบนเปเบฅเปเบงเบเบซเบเปเบฒเบงเปเบฒเบเปเปเบกเบนเบเบเบฒเบ "input" json array เบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเบเบฒเบเบฐเบฅเบฒเบเบเปเบฒเบเบงเบเบซเบเบถเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฑเบเปเบเปเบซเบผเบฒเบเปเบ "dereferencing" เบเบฒเบเบชเบฐเบซเบเบฒเบกเปเบฅเบฐเปเบเบเบเบงเบเบกเบฑเบเปเบเบซเบฒเบเบฐเปเบเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบเปเบเปเบเบฑเบเบเบฑเบ 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
เปเบฅเบฐเบเบฑเบเบเบฑเบเบเบตเปเบเบฐเบเบฝเบเปเบเป "เบเบฐเบซเบเบฒเบ" array เบเบตเปเบเปเบฒเบเบเบญเบเบงเบฑเบเบเบธเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบ, เปเบเบเบเปเปเบกเบตเบเบฒเบเบญเบตเบเปเบชเปเบฎเบนเบเปเบเบเบเบฒเบเบฐเบฅเบฒเบ:
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
เบเบฒเบเบฐเบฅเบฒเบเบเบปเปเบงเบเบฒเบง
เปเบเปเบเปเบฒเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเปเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบเบทเบเปเบญเบเปเบกเปเบเปเบซเบเปเบซเบผเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบดเปเบกเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ serialized เบซเบเบถเปเบเปเบกเปเบเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเปเปเบเบฑเบเปเบเบเปเปเปเบเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเปเบญเบเบเบฒเบเบซเบเบถเปเบเบเบฑเปเบ. เบเบฑเบเบชเบฑเบเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบธเบเปเบซเบเปเบเปเบฝเบงเบเบฑเบเปเบซเบเบเบฒเบเบเบฒเบเบฅเบฐเบเบปเบเบเบฒเบเบเบญเบเปเบเบฑเบเปเบงเบฅเบฒเบเบปเบ, เบเบปเบเบเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบเบถเปเบเบเบฑเปเบเปเบเบเปเบฒเบเบเบฒเบเบเปเปเบกเบนเบ.
เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเบเบตเป, เบเบฒเบเปเบเปเปเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเป
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. เปเบฅเบฐเบเปเบฒเบฅเบปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเบตเปเปเบเปเบเบงเบเบกเบฑเบ.
เปเบเปเบเบญเบ, เบเบตเปเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเป passage เปเบเบฑเบเปเบฅเบเบฐ VACUUM เปเบเบฑเบก เบญเบตเบเบเบฒเบกเบเบฒเบเบฐเบฅเบฒเบเบฅเบฐเบเบปเบ.
เบเบปเบงเปเบเบเบญเบเปเบเบเบเบฑเบ
เปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบฒเบเบเบธเบเปเบเปเบเบเปเปเบกเบนเบเบเบฒเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเบเบกเบฒเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบชเบฑเบเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบญเบเบเบฒเบก SQL เบซเบเบถเปเบ, เปเบเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบฎเบฑเบเบกเบฑเบเปเบฅเบทเปเบญเบเป. เบเบฑเปเบเปเบกเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเปเบเบฐเบเบงเบเบเบฒเบเบเบธเบเปเบเปเบเปเบ
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบเป $n-parameters เบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบปเปเบเบเปเปเบเบฑเบเบเบฅเบฑเบญเบเบเบตเปเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเปเปเบเป. เบเบปเบงเปเบ Session เปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบญเบญเบเบเบฒเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเป เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฐเบเบธเบเบฑเบ.
เบเปเบญเบโเบเบตเปโเบเบฐโเบชเบฐโเบเบฑเบ 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