เจธเจฎเฉเจ-เจธเจฎเฉเจ 'เจคเฉ, เจกเจฟเจตเฉเจฒเจชเจฐ เจจเฉเฉฐ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจฌเฉเจจเจคเฉ เจฒเจ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ เจเจพเจ เจเฉฑเจ เจชเฉเจฐเฉ เจเฉเจฃ เจตเฉ เจชเจพเจธ เจเจฐเฉ "เจชเฉเจฐเจตเฉเจธเจผ เจฆเฉเจเจฐ 'เจคเฉ". เจเจ เจตเจพเจฐ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจฌเจนเฉเจค เจ
เจเฉเจฌ เจนเฉฑเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจ.
เจเจฒเฉ "เจเจฒเจ เจคเฉเจ" เจเฉฑเจฒเฉเจ เจ
เจคเฉ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจเจฟเจตเฉเจ เจจเจนเฉเจ เจเจฐเจจเจพ เจนเฉ, เจเจฟเจเจ, เจ
เจคเฉ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจเจฟเจตเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจฌเฉเจจเจคเฉ เจฆเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจฎเฉเฉฑเจฒเจพเจ เจฆเจพ เจธเจฟเฉฑเจงเจพ "เจธเฉฐเจฎเจฟเจฒเจจ"
เจเจน เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
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),...
เจฌเฉเจจเจคเฉ เจฆเฉ "เจฎเฉเฉ-เจเจฒเฉเจเฉฐเจ" เจฆเฉ เจจเจพเจฒ เจเฉฑเจชเจฐ เจฆเฉฑเจธเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจน เจธเจพเจจเฉเฉฐ เจตเฉ เจฒเฉ เจธเจเจฆเจพ เจนเฉ เจธเจฎเจ เจคเฉ เจฌเจพเจนเจฐ เจ เจคเฉ เจธเจฐเจตเจฐ เจเจฐเฉเจธเจผ. เจเจพเจฐเจจ เจธเจงเจพเจฐเจจ เจนเฉ - PG เจเจฐเจเฉเจฎเฉเจเจเจพเจ เจฒเจ เจตเจพเจงเฉ เจฎเฉเจฎเฉเจฐเฉ เจฐเจฟเจเจผเจฐเจต เจเจฐเจฆเจพ เจนเฉ, เจ เจคเฉ เจธเฉเฉฑเจ เจตเจฟเฉฑเจ เจฐเจฟเจเจพเจฐเจกเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจธเจฟเจฐเจซเจผ เจตเจชเจพเจฐเจ เจคเจฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเจธเจผเจฒเจฟเจธเจ เจฆเฉเจเจฐเจพ เจธเฉเจฎเจฟเจค เจนเฉเฅค เจเจพเจธ เจคเฉเจฐ 'เจคเฉ เจเจฒเฉเจจเจฟเจเจฒ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจเจน เจฆเฉเจเจฃเจพ เจเจผเจฐเฉเจฐเฉ เจธเฉ $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;
เจนเจพเจ, เจเฉฑเจ เจเจฐเฉ เจฆเฉ เจ
เฉฐเจฆเจฐ "เจเฉเฉฐเจเจฒเจฆเจพเจฐ" เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉเจเจธ เจฆเฉ เจจเจพเจฒ เจซเจฐเฉเจฎ เจเฉเจคเฉ เจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจน เจธเจชเฉฑเจธเจผเจ เจนเฉ เจเจฟ เจเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจคเฉเจธเฉเจ เจเฉเจคเจฐ เจฆเฉ เจฎเจจเจฎเจฐเจเจผเฉ เจจเจพเจฒ เจเฉเจฃ เจจเฉเฉฐ "เจชเจธเจพเจฐ" เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจ เจจเฉเจธเจ, เจ เจจเฉเจธเจ,โฆ
เจธเจฎเฉเจ-เจธเจฎเฉเจ 'เจคเฉ "เจเจฐเฉ เจฆเฉ เจเจฐเฉ" เจเจ "เจเจพเจฒเจฎเจพเจ เจฆเฉเจเจ เจเจฐเฉ" เจฆเฉ เจฌเจเจพเจ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจตเจฟเจเจฒเจช เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเจพ เจฎเฉเจ เจเจผเจฟเจเจฐ เจเฉเจคเจพ เจนเฉ
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 เจเจฟเจธเจฎ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจชเฉเจฐเฉ เจซเฉฐเจเจธเจผเจจ เจนเจจเฅค เจเจธเจฒเจ, เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเจจเจชเฉเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฌเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเจจ, เจคเจพเจ เจคเฉเจธเฉเจ เจเฉฑเจฅเฉ เจนเฉ เจซเจพเจฐเจฎ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ 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 เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ "dereferencing" เจเฉเจคเจฐเจพเจ เจ เจคเฉ เจเจพเจธเจ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจเจฟเจธเจฎเจพเจ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเจพ เจฌเจเจพ เจธเจเจฆเฉ เจนเฉ:
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