เจธเจผเฉฑเจ•เฉ€ เจ•เจฟเจธเจฎ

เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ€ เจฆเจฟเฉฑเจ– เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจตเฉ€ เจธเจผเฉฑเจ•เฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‰เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เจคเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจตเฉ€ เจœเจพเจชเจฆเฉ‡ เจนเจจ. เจชเจฐ เจ‡เจน เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจธเฉ€เจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡. เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ‰เจน เจ†เจชเจฃเฉ‡ เจงเฉ‹เจ–เฉ‡เจฌเจพเจœเจผ เจธเฉเจญเจพเจ… เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจคเฉเจนเจพเจกเฉ€ เจ‰เจฎเฉ€เจฆ เจจเจพเจฒเฉ‹เจ‚ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ. เจ…เจคเฉ‡ เจ•เจˆ เจตเจพเจฐ เจ‰เจน เจ…เจœเจฟเจนเจพ เจ•เฉเจ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ‡ เจตเจพเจฒ เจธเจฟเจฐเฉ‡ 'เจคเฉ‡ เจ–เฉœเฉเจนเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ - เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ‰เจน เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉŒเจ‚เจชเจฟเจ† เจ—เจฟเจ† เจ—เฉเจชเจค เจกเฉ‡เจŸเจพ เจ—เฉเจ† เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‰เจน เจฆเจพเจ…เจตเจพ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ•เจฟ เจ‰เจน เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจชเจฐเจ›เจพเจตเฉ‡เจ‚ เจตเจฟเฉฑเจš เจ‰เจน เจ‰เจธเฉ‡ เจนเฉเฉฑเจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจธเจ–เจผเจค เจฎเจฟเจนเจจเจค เจ•เจฐเจฆเฉ‡ เจนเจจ. เจ†เจ–เจฐเจ•เจพเจฐ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจชเจพเจฃเฉ€ เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ†เจ“ เจ‡เจจเฉเจนเจพเจ‚ เจธเจผเฉฑเจ•เฉ€ เจ•เจฟเจธเจฎเจพเจ‚ เจจเจพเจฒ เจตเฉ€ เจจเจœเจฟเฉฑเจ เฉ€เจเฅค

PostgreSQL เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจŸเจพเจˆเจชเจฟเฉฐเจ—, เจ‡เจธเจฆเฉ‡ เจธเจพเจฐเฉ‡ เจคเจฐเจ• เจฒเจˆ, เจ•เจˆ เจตเจพเจฐ เจฌเจนเฉเจค เจ…เจœเฉ€เจฌ เจนเฉˆเจฐเจพเจจเฉ€ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจ…เจธเฉ€เจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจ•เฉเจ เจตเจฟเจตเจนเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจชเฉฑเจธเจผเจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจ…เจœเฉ€เจฌ เจตเจฟเจตเจนเจพเจฐ เจฆเฉ‡ เจ•เจพเจฐเจจ เจจเฉ‚เฉฐ เจธเจฎเจเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจ‡เจน เจธเจฎเจเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจฐเฉ‹เจœเจผเจพเจจเจพ เจ…เจญเจฟเจ†เจธ เจตเจฟเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจธเฉฑเจš เจฆเฉฑเจธเจฃ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจนเจตเจพเจฒเจพ เจชเฉเจธเจคเจ• เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเฉ€ เจธเฉฐเจ•เจฒเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจนเจตเจพเจฒเจพ เจชเฉเจธเจคเจ• เจœเจฟเจธ เจจเฉ‚เฉฐ เจตเจฟเจตเจพเจฆเจชเฉ‚เจฐเจจ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจนเจตเจพเจฒเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจญเจฐเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจผเฉฑเจ•เฉ€ เจ•เจฟเจธเจฎเจพเจ‚ เจคเฉ‹เจ‚ เจจเจตเฉ‡เจ‚ เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจ‡เจธ เจฒเจˆ, เจšเจฒเฉ‹, เจนเฉ‡ เจ…เจฃเจฅเฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจŸเจฐเฉˆเจ•เจฐ!

เจกเฉ‹เจœเจผเฉ€เจ…เจฐ เจจเฉฐเจฌเจฐ เจ‡เฉฑเจ•. เจ…เจธเจฒเฉ€/เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ/เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ•/เจชเฉˆเจธเจพ

เจ‡เจน เจœเจพเจชเจฆเจพ เจนเฉˆ เจ•เจฟ เจตเจฟเจนเจพเจฐ เจตเจฟเฉฑเจš เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจ•เจฟเจธเจฎเจพเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจธเจฎเฉฑเจธเจฟเจ† เจตเจพเจฒเฉ€เจ†เจ‚ เจนเจจ. เจชเจฐ เจ•เฉ‹เจˆ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจนเฉˆ. เจ‡เจธ เจฒเจˆ เจ†เจ“ เจ‰เจจเฉเจนเจพเจ‚ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเฉ€เจ. เจ‡เจธ เจฒเจˆโ€ฆ

เจ—เจฟเจฃเจจ เจฆเจพ เจคเจฐเฉ€เจ•เจพ เจญเฉเฉฑเจฒ เจ—เจฟเจ†

SELECT 0.1::real = 0.1

?column?
boolean
---------
f

เจ•เฉ€ เจ—เฉฑเจฒ เจนเฉˆ? เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ PostgreSQL เจฌเจฟเจจเจพเจ‚ เจŸเจพเจˆเจช เจ•เฉ€เจคเฉ‡ เจธเจฅเจฟเจฐ 0.1 เจจเฉ‚เฉฐ เจฆเฉเฉฑเจ—เจฃเฉ€ เจธเจผเฉเฉฑเจงเจคเจพ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจ…เจธเจฒ เจ•เจฟเจธเจฎ เจฆเฉ‡ 0.1 เจจเจพเจฒ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเฉ‡ เจ…เจฐเจฅ เจนเจจ! เจ‡เจน เจตเจฟเจšเจพเจฐ เจฎเจธเจผเฉ€เจจ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจฃเจพ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ 0.1 เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉ€เจฎเจฟเจค เจฌเจพเจˆเจจเจฐเฉ€ เจซเจฐเฉˆเจ•เจธเจผเจจ เจตเจœเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจฆเจฐเจธเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ (เจ‡เจน เจฌเจพเจˆเจจเจฐเฉ€ เจตเจฟเฉฑเจš 0.0(0011) เจนเฉ‹เจตเฉ‡เจ—เจพ), เจตเฉฑเจ–-เจตเฉฑเจ– เจฌเจฟเฉฑเจŸ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚, เจ‡เจธเจฒเจˆ เจจเจคเฉ€เจœเจพ เจ‡เจน เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจ‰เจน เจฌเจฐเจพเจฌเจฐ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจฒเฉ‡เจ– เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเจพ เจนเฉˆ; เจฎเฉˆเจ‚ เจ‡เฉฑเจฅเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฒเจฟเจ–เจพเจ‚เจ—เจพ.

เจ—เจฒเจคเฉ€ เจ•เจฟเฉฑเจฅเฉ‹เจ‚ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ?

SELECT double precision(1)

ERROR:  syntax error at or near "("
LINE 1: SELECT double precision(1)
                               ^
********** ะžัˆะธะฑะบะฐ **********
ERROR: syntax error at or near "("
SQL-ัะพัั‚ะพัะฝะธะต: 42601
ะกะธะผะฒะพะป: 24

เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฒเฉ‹เจ• เจœเจพเจฃเจฆเฉ‡ เจนเจจ เจ•เจฟ PostgreSQL เจ•เจฟเจธเจฎ เจ•เจพเจธเจŸเจฟเฉฐเจ— เจฒเจˆ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเฉฐเจ•เฉ‡เจค เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจญเจพเจต, เจคเฉเจธเฉ€เจ‚ เจจเจพ เจธเจฟเจฐเจซเจผ 1::int, เจธเจ—เฉ‹เจ‚ int(1) เจตเฉ€ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเฉ‹ เจฌเจฐเจพเจฌเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฒเจˆ เจจเจนเฉ€เจ‚ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจจเจพเจฎ เจตเจฟเฉฑเจš เจ•เจˆ เจธเจผเจฌเจฆ เจนเจจ! เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจซเฉฐเจ•เจธเจผเจจเจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจผเฉเฉฑเจงเจคเจพ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจฆเฉเฉฑเจ—เจฃเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจฎเฉเฉฑเจฒ เจชเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจซเจฒเฉ‹เจŸ 8 เจฆเฉ‡ เจ‰เจชเจจเจพเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹, เจฏเจพเจจเฉ€ SELECT float8(1)เฅค

เจ…เจจเฉฐเจค เจคเฉ‹เจ‚ เจตเฉฑเจกเจพ เจ•เฉ€ เจนเฉˆ?

SELECT 'Infinity'::double precision < 'NaN'::double precision

?column?
boolean
---------
t

เจฆเฉ‡เจ–เฉ‹ เจ‡เจน เจ•เจฟเจนเฉ‹ เจœเจฟเจนเจพ เจนเฉˆ! เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจจเฉฐเจค เจคเฉ‹เจ‚ เจตเฉ€ เจตเฉฑเจกเฉ€ เจšเฉ€เจœเจผ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน NaN เจนเฉˆ! เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, PostgreSQL เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจธเจพเจจเฉ‚เฉฐ เจ‡เจฎเจพเจจเจฆเจพเจฐ เจจเจœเจผเจฐเจพเจ‚ เจจเจพเจฒ เจฆเฉ‡เจ–เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฆเจพเจ…เจตเจพ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ NaN เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจนเฉ‹เจฐ เจธเฉฐเจ–เจฟเจ† เจจเจพเจฒเฉ‹เจ‚ เจตเฉฑเจกเจพ เจนเฉˆ, เจ…เจคเฉ‡, เจ‡เจธเจฒเจˆ, เจ…เจจเฉฐเจคเจคเจพเฅค -NaN เจฒเจˆ เจ‰เจฒเจŸ เจตเฉ€ เจธเฉฑเจš เจนเฉˆเฅค เจนเฉˆเจฒเฉ‹, เจ—เจฃเจฟเจค เจชเฉเจฐเฉ‡เจฎเฉ€! เจชเจฐ เจธเจพเจจเฉ‚เฉฐ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจญ เจ…เจธเจฒ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ…เฉฑเจ–เจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉ‹เจฒ เจ•เจฐเจจเจพ

SELECT round('2.5'::double precision)
     , round('2.5'::numeric)

      round      |  round
double precision | numeric
-----------------+---------
2                | 3

เจ…เจงเจพเจฐ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ…เจšเจพเจจเจ• เจธเจผเฉเจญเจ•เจพเจฎเจจเจพเจตเจพเจ‚เฅค เจฆเฉเจฌเจพเจฐเจพ, เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจกเจฌเจฒ เจธเจŸเฉ€เจ•เจธเจผเจจ เจ…เจคเฉ‡ เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจฐเจพเจŠเจ‚เจกเจฟเฉฐเจ— เจชเฉเจฐเจญเจพเจต เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจฒเจˆ - เจ†เจฎ เจ‡เฉฑเจ•, เจœเจฆเฉ‹เจ‚ 0,5 เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ เจฒเจˆ - 0,5 เจจเฉ‚เฉฐ เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจธเจฎ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจตเฉฑเจฒ เจ—เฉ‹เจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจชเฉˆเจธเจพ เจ•เฉเจ เจ–เจพเจธ เจนเฉˆ

SELECT '10'::money::float8

ERROR:  cannot cast type money to double precision
LINE 1: SELECT '10'::money::float8
                          ^
********** ะžัˆะธะฑะบะฐ **********
ERROR: cannot cast type money to double precision
SQL-ัะพัั‚ะพัะฝะธะต: 42846
ะกะธะผะฒะพะป: 19

PostgreSQL เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจชเฉˆเจธเจพ เจ‡เฉฑเจ• เจ…เจธเจฒเฉ€ เจจเฉฐเจฌเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจ•เฉเจ เจตเจฟเจ…เจ•เจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจตเฉ€. เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจชเฉˆเจธเฉ‡ เจฆเฉ€ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจ•เจพเจธเจŸ เจ•เจฐเจจเจพ เจธเจฟเจฐเจซ เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจ•เจฟเจธเจฎ เจฒเจˆ เจนเฉ€ เจธเฉฐเจญเจต เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจฟเจฐเจซ เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจชเฉˆเจธเฉ‡ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฒเจˆ เจ•เจพเจธเจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจฆเจฟเจฒ เจฆเฉ€ เจ‡เฉฑเจ›เจพ เจ…เจจเฉเจธเจพเจฐ เจ–เฉ‡เจก เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจชเจฐ เจ‡เจน เจ‰เจนเฉ€ เจชเฉˆเจธเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจธเจฎเจพเจฒเจŸ เจ…เจคเฉ‡ เจ•เฉเจฐเจฎ เจชเฉ€เฉœเฉเจนเฉ€

SELECT *
  FROM generate_series(1::smallint, 5::smallint, 1::smallint)

ERROR:  function generate_series(smallint, smallint, smallint) is not unique
LINE 2:   FROM generate_series(1::smallint, 5::smallint, 1::smallint...
               ^
HINT:  Could not choose a best candidate function. You might need to add explicit type casts.
********** ะžัˆะธะฑะบะฐ **********
ERROR: function generate_series(smallint, smallint, smallint) is not unique
SQL-ัะพัั‚ะพัะฝะธะต: 42725
ะŸะพะดัะบะฐะทะบะฐ: Could not choose a best candidate function. You might need to add explicit type casts.
ะกะธะผะฒะพะป: 18

PostgreSQL เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจ—เฉฑเจฒเจพเจ‚ 'เจคเฉ‡ เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจ•เจฐเจจเจพ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจธเจฎเจพเจฒเจ‡เฉฐเจŸ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ‡เจน เจ•เฉเจฐเจฎ เจ•เฉ€ เจนเจจ? int, เจ•เฉ‹เจˆ เจ˜เฉฑเจŸ! เจ‡เจธ เจฒเจˆ, เจ‰เจชเจฐเฉ‹เจ•เจค เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฎเจพเจฒเจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจ•เจพเจธเจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจฆเฉ‡เจ–เจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจ•เจˆ เจ•เฉˆเจธเจŸเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ•เจฟเจนเฉœเฉ€ เจ•เจพเจธเจŸ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเฉ€ เจนเฉˆ? เจ‰เจน เจ‡เจธเจฆเจพ เจซเฉˆเจธเจฒเจพ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ€, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจจเจพเจฒ เจ•เจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจซเจพเจˆเจฒ เจจเฉฐเจฌเจฐ เจฆเฉ‹. "char"/char/varchar/text

เจšเจฐเจฟเฉฑเจคเจฐ เจ•เจฟเจธเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉ€ เจ•เจˆ เจ…เจœเฉ€เจฌเจคเจพ เจฎเฉŒเจœเฉ‚เจฆ เจนเจจเฅค เจ†เจ“ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจœเจพเจฃเฉ€เจเฅค

เจ‡เจน เจ•เจฟเจนเฉ‹ เจœเจฟเจนเฉ€เจ†เจ‚ เจšเจพเจฒเจพเจ‚ เจนเจจ?

SELECT 'ะŸะ•ะขะฏ'::"char"
     , 'ะŸะ•ะขะฏ'::"char"::bytea
     , 'ะŸะ•ะขะฏ'::char
     , 'ะŸะ•ะขะฏ'::char::bytea

 char  | bytea |    bpchar    | bytea
"char" | bytea | character(1) | bytea
-------+-------+--------------+--------
 โ•จ     | xd0  | ะŸ            | xd09f

เจ‡เจน เจ•เจฟเจธ เจ•เจฟเจธเจฎ เจฆเจพ "เจšเจฐ" เจนเฉˆ, เจ‡เจน เจ•เจฟเจธ เจ•เจฟเจธเจฎ เจฆเจพ เจœเฉ‹เฉœเจพ เจนเฉˆ? เจธเจพเจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ... เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจ†เจฎ เจ…เฉฑเจ–เจฐ เจนเฉ‹เจฃ เจฆเจพ เจฆเจฟเจ–เจพเจตเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ‡เจน เจนเจตเจพเจฒเฉ‡ เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡เฅค เจ…เจคเฉ‡ เจ‡เจน เจ‡เฉฑเจ• เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจšเจพเจฐ เจคเฉ‹เจ‚ เจตเฉฑเจ–เจฐเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฌเจฟเจจเจพเจ‚ เจ•เฉ‹เจŸเจธ เจฆเฉ‡ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจธเจคเจฐ เจฆเฉ€ เจจเฉเจฎเจพเจ‡เฉฐเจฆเจ—เฉ€ เจฆเจพ เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเจพ เจฌเจพเจˆเจŸ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจšเจพเจฐ เจชเจนเจฟเจฒเฉ‡ เจ…เฉฑเจ–เจฐ เจจเฉ‚เฉฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจชเจนเจฟเจฒเจพ เจ…เฉฑเจ–เจฐ P เจ…เฉฑเจ–เจฐ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฏเฉ‚เจจเฉ€เจ•เฉ‹เจก เจจเฉเจฎเจพเจ‡เฉฐเจฆเจ—เฉ€ เจตเจฟเฉฑเจš 2 เจฌเจพเจˆเจŸ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจจเจคเฉ€เจœเฉ‡ เจจเฉ‚เฉฐ เจฌเจพเจˆเจŸ เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจ•เฉ‡ เจธเจฌเฉ‚เจค เจฎเจฟเจฒเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ "char" เจ•เจฟเจธเจฎ เจ‡เจธ เจฏเฉ‚เจจเฉ€เจ•เฉ‹เจก เจชเฉเจฐเจคเฉ€เจจเจฟเจงเจคเจพ เจฆเจพ เจธเจฟเจฐเจซเจผ เจชเจนเจฟเจฒเจพ เจฌเจพเจˆเจŸ เจฒเฉˆเจ‚เจฆเฉ€ เจนเฉˆเฅค เจซเจฟเจฐ เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ€ เจ•เฉ€ เจฒเฉ‹เฉœ เจนเฉˆ? PostgreSQL เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจตเจฟเจธเจผเฉ‡เจธเจผ เจฒเฉ‹เฉœเจพเจ‚ เจฒเจˆ เจตเจฐเจคเฉ€ เจœเจพเจฃ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจ•เจฟเจธเจฎ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจชเจฐ เจ‰เจธเจฆเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ เจตเจฟเฉฑเจš เจเจพเจคเฉ€ เจฎเจพเจฐเฉ‹ เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‰เจธเจจเฉ‚เฉฐ เจ‰เจธเจฆเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฟเจตเจนเจพเจฐ เจจเจพเจฒ เจฎเจฟเจฒเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เจฒเจคเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจตเจพเจงเฉ‚ เจฅเจพเจ‚เจตเจพเจ‚เฅค เจตเฉ‡เจ–เจฃ เจคเฉ‹เจ‚ เจชเจฐเฉ‡ เจธเฉ‹เจš เจคเฉ‹ เจชเจฐเฉ‡

SELECT 'abc   '::char(6)::bytea
     , 'abc   '::char(6)::varchar(6)::bytea
     , 'abc   '::varchar(6)::bytea

     bytea     |   bytea  |     bytea
     bytea     |   bytea  |     bytea
---------------+----------+----------------
x616263202020 | x616263 | x616263202020

เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจ‰เจฆเจพเจนเจฐเจฃ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹เฅค เจฎเฉˆเจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจฐเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฌเจพเจˆเจŸ เจฆเฉ€ เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ†, เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡ เจธเจ•เฉ‡ เจ•เจฟ เจ‰เฉฑเจฅเฉ‡ เจ•เฉ€ เจธเฉ€. varchar(6) เจตเจฟเฉฑเจš เจ•เจพเจธเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเจฟเจ›เจฒเจพ เจธเจฅเจพเจจ เจ•เจฟเฉฑเจฅเฉ‡ เจนเจจ? เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉˆ: "เจœเจฆเฉ‹เจ‚ เจ…เฉฑเจ–เจฐ เจฆเฉ‡ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจ…เฉฑเจ–เจฐ เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจ•เจพเจธเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจชเจฟเฉฑเจ›เฉ‡ เจตเจพเจฒเฉ€ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉฑเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค" เจ‡เจธ เจจเจพเจชเจธเฉฐเจฆ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ. เจ…เจคเฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจนเจตเจพเจฒเจพ เจฆเจฟเฉฑเจคเฉ€ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจธเจฅเจฟเจฐเจคเจพ เจจเฉ‚เฉฐ เจŸเจพเจˆเจช varchar(6) เจตเจฟเฉฑเจš เจธเจฟเฉฑเจงเจพ เจ•เจพเจธเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจŸเฉเจฐเฉ‡เจฒเจฟเฉฐเจ— เจธเจชเฉ‡เจธ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ…เจœเจฟเจนเฉ‡ เจšเจฎเจคเจ•เจพเจฐ เจนเจจเฅค

เจซเจพเจˆเจฒ เจจเฉฐเจฌเจฐ เจคเจฟเฉฐเจจ. json/jsonb

JSON เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจฌเจฃเจคเจฐ เจนเฉˆ เจœเฉ‹ เจ†เจชเจฃเฉ€ เจœเจผเจฟเฉฐเจฆเจ—เฉ€ เจœเฉ€เจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธเจฒเจˆ, เจ‡เจธเจฆเฉ€เจ†เจ‚ เจ‡เจ•เจพเจˆเจ†เจ‚ เจ…เจคเฉ‡ PostgreSQL เจฆเฉ€เจ†เจ‚ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ เจฅเฉ‹เฉœเฉเจนเฉ€เจ†เจ‚ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจนเจจ.

เจœเจพเจจเจธเจจ เจ…เจคเฉ‡ เจœเจพเจจเจธเจจ. เจซเจฐเจ• เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเฉ‹

SELECT 'null'::jsonb IS NULL

?column?
boolean
---------
f

เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ JSON เจฆเฉ€ เจ†เจชเจฃเฉ€ เจจเจฒ เจ‡เจ•เจพเจˆ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ PostgreSQL เจตเจฟเฉฑเจš NULL เจฆเจพ เจเจจเจพเจฒเจพเจ— เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจฆเฉ‡ เจจเจพเจฒ เจนเฉ€, JSON เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเจพ เจฎเฉเฉฑเจฒ NULL เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจธเจฎเฉ€เจ•เจฐเจจ SELECT null::jsonb IS NULL (เจธเจฟเฉฐเจ—เจฒ เจ•เฉ‹เจŸเจธ เจฆเฉ€ เจ—เฉˆเจฐเจนเจพเจœเจผเจฐเฉ€ เจจเฉ‹เจŸ เจ•เจฐเฉ‹) เจ‡เจธ เจตเจพเจฐ เจธเจนเฉ€ เจตเจพเจชเจธ เจ†เจตเฉ‡เจ—เจพเฅค

เจ‡เฉฑเจ• เจ…เฉฑเจ–เจฐ เจธเจญ เจ•เฉเจ เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ

SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::json

                     json
                     json
------------------------------------------------
{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}

---

SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::jsonb

             jsonb
             jsonb
--------------------------------
{"1": [7, 8, 9], "2": [4, 5, 6]}

เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ json เจ…เจคเฉ‡ jsonb เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจฌเจฃเจคเจฐเจพเจ‚ เจนเจจเฅค json เจตเจฟเฉฑเจš, เจตเจธเจคเฉ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ jsonb เจตเจฟเฉฑเจš เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจชเจพเจฐเจธ, เจ‡เฉฐเจกเฉˆเจ•เจธเจก เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธเฉ‡ เจฒเจˆ เจฆเฉ‚เจœเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ•เฉเฉฐเจœเฉ€ 1 เจฆเฉเจ†เจฐเจพ เจตเจธเจคเฉ‚ เจฆเจพ เจฎเฉเฉฑเจฒ [1, 2, 3] เจคเฉ‹เจ‚ [7, 8, 9] เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจ‰เจธเฉ‡ เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจฌเจฟเจฒเจ•เฉเจฒ เจธเจฟเจฐเฉ‡ 'เจคเฉ‡ เจฌเจฃเจคเจฐ เจตเจฟเฉฑเจš เจ†เจ‡เจ† เจธเฉ€เฅค

เจ†เจชเจฃเฉ‡ เจšเจฟเจนเจฐเฉ‡ เจคเฉ‹เจ‚ เจชเจพเจฃเฉ€ เจจเจพ เจชเฉ€เจ“

SELECT '{"reading": 1.230e-5}'::jsonb
     , '{"reading": 1.230e-5}'::json

          jsonb         |         json
          jsonb         |         json
------------------------+----------------------
{"reading": 0.00001230} | {"reading": 1.230e-5}

PostgreSQL เจ‡เจธเจฆเฉ‡ JSONB เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจซเจพเจฐเจฎเฉˆเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฒเจพเจธเฉ€เจ•เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน JSON เจ•เจฟเจธเจฎ เจฒเจˆ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจฅเฉ‹เฉœเจพ เจ…เจœเฉ€เจฌ เจนเฉˆ, เจชเจฐ เจ‰เจน เจธเจนเฉ€ เจนเฉˆ.

เจซเจพเจˆเจฒ เจจเฉฐเจฌเจฐ เจšเจพเจฐ. เจฎเจฟเจคเฉ€/เจธเจฎเจพเจ‚/เจŸเจพเจˆเจฎเจธเจŸเฉˆเจ‚เจช

เจฎเจฟเจคเฉ€/เจธเจฎเฉ‡เจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจ…เจœเฉ€เจฌเจคเจพ เจตเฉ€ เจนเจจเฅค เจ†เจ“ เจ‰เจจเฉเจนเจพเจ‚ 'เจคเฉ‡ เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจ‡เฉฑเจ• เจฐเจฟเจœเจผเจฐเจตเฉ‡เจธเจผเจจ เจ•เจฐเจจ เจฆเจฟเจ“ เจ•เจฟ เจ•เฉเจ เจตเจฟเจตเจนเจพเจฐ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฎเจพเจ‚ เจ–เฉ‡เจคเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจคเฉฑเจค เจจเฉ‚เฉฐ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจเจฆเฉ‡ เจนเฉ‹เฅค เจชเจฐ เจ‡เจน เจตเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจฒเฉ‡เจ– เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเจพ เจนเฉˆ.

เจฎเฉ‡เจฐเฉ€ เจคเฉ‡เจฐเฉ€ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเฉ€

SELECT '08-Jan-99'::date

ERROR:  date/time field value out of range: "08-Jan-99"
LINE 1: SELECT '08-Jan-99'::date
               ^
HINT:  Perhaps you need a different "datestyle" setting.
********** ะžัˆะธะฑะบะฐ **********
ERROR: date/time field value out of range: "08-Jan-99"
SQL-ัะพัั‚ะพัะฝะธะต: 22008
ะŸะพะดัะบะฐะทะบะฐ: Perhaps you need a different "datestyle" setting.
ะกะธะผะฒะพะป: 8

เจ‡เจน เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจธเจฎเจ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ•เฉ€ เจนเฉˆ? เจชเจฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจœเฉ‡ เจตเฉ€ เจ‡เจน เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเจพ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ - เจธเจพเจฒ เจœเจพเจ‚ เจฆเจฟเจจ? เจ…เจคเฉ‡ เจ‰เจน เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจœเจจเจตเจฐเฉ€ 99, 2008 เจนเฉˆ, เจœเฉ‹ เจ‰เจธ เจฆเฉ‡ เจฆเจฟเจฎเจพเจ— เจจเฉ‚เฉฐ เจ‰เจกเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจŸเฉˆเจ•เจธเจŸ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจคเจพเจฐเฉ€เจ–เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจนเฉเจค เจงเจฟเจ†เจจ เจจเจพเจฒ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจชเจ›เจพเจฃเจฟเจ† เจนเฉˆ (เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, SHOW datestyle เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ datestyle เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเฉ‹), เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ…เจธเจชเจธเจผเจŸเจคเจพ เจฌเจนเฉเจค เจฎเจนเจฟเฉฐเจ—เฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจ•เจฟเฉฑเจฅเฉ‹เจ‚ เจฎเจฟเจฒเจฟเจ†?

SELECT '04:05 Europe/Moscow'::time

ERROR:  invalid input syntax for type time: "04:05 Europe/Moscow"
LINE 1: SELECT '04:05 Europe/Moscow'::time
               ^
********** ะžัˆะธะฑะบะฐ **********
ERROR: invalid input syntax for type time: "04:05 Europe/Moscow"
SQL-ัะพัั‚ะพัะฝะธะต: 22007
ะกะธะผะฒะพะป: 8

เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจธเจฎเจ เจธเจ•เจฆเจพ? เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจฎเจพเจ‚ เจœเจผเฉ‹เจจ เจฆเจพ เจ•เฉ‹เจˆ เจธเฉฐเจ–เฉ‡เจช เจจเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ, เจชเจฐ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจจเจพเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจฎเจฟเจคเฉ€ เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจ…เจฐเจฅ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจฎเจพเจ‚ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจ‡เจคเจฟเจนเจพเจธ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจฎเจฟเจคเฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจ…เจคเฉ‡ เจŸเจพเจˆเจฎ เจฒเจพเจˆเจจ เจฆเฉ€ เจฌเจนเฉเจค เจนเฉ€ เจธเจผเจฌเจฆเจพเจตเจฒเฉ€ เจธเจตเจพเจฒ เจ‰เจ เจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ - เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจฆเจพ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เฉ€ เจฎเจคเจฒเจฌ เจธเฉ€? เจ‡เจธ เจฒเจˆ, เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจนเฉˆ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹.

เจ‰เจธ เจจเจพเจฒ เจ•เฉ€ เจ—เจฒเจค เจนเฉˆ?

เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ‹. เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจคเฉเจนเจพเจกเฉ€ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจŸเจพเจˆเจฎเจธเจŸเฉˆเจ‚เจชเจŸเจœเจผ เจŸเจพเจˆเจช เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ–เฉ‡เจคเจฐ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ‡เฉฐเจกเฉˆเจ•เจธ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฎเจเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจธ เจ–เฉ‡เจคเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจฌเจฃเจพเจ‰เจฃเจพ เจนเจฎเฉ‡เจธเจผเจพ เจ‡เจธเจฆเฉ€ เจ‰เฉฑเจš เจšเฉ‹เจฃ เจฆเฉ‡ เจ•เจพเจฐเจจ เจœเจพเจ‡เจœเจผ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ (เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจฒเจ—เจญเจ— เจธเจพเจฐเฉ‡ เจฎเฉเฉฑเจฒ เจตเจฟเจฒเฉฑเจ–เจฃ เจนเฉ‹เจฃเจ—เฉ‡)เฅค เจ‡เจธ เจฒเจˆ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจฎเจฟเจคเฉ€ 'เจคเฉ‡ เจ•เจพเจธเจŸ เจ•เจฐเจ•เฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจฆเฉ€ เจšเฉ‹เจฃ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจนเฉˆเจฐเจพเจจเฉ€ เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ:

CREATE INDEX "iIdent-DateLastUpdate"
  ON public."Ident" USING btree
  (("DTLastUpdate"::date));

ERROR:  functions in index expression must be marked IMMUTABLE
********** ะžัˆะธะฑะบะฐ **********
ERROR: functions in index expression must be marked IMMUTABLE
SQL-ัะพัั‚ะพัะฝะธะต: 42P17

เจ•เฉ€ เจ—เฉฑเจฒ เจนเฉˆ? เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจŸเจพเจˆเจฎเจธเจŸเฉˆเจ‚เจชเจŸเจœเจผ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเจฟเจคเฉ€ เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจ•เจพเจธเจŸ เจ•เจฐเจจ เจฒเจˆ, เจŸเจพเจˆเจฎเจœเจผเฉ‹เจจ เจธเจฟเจธเจŸเจฎ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเจพ เจฎเฉเฉฑเจฒ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ•เจฟเจธเจฎ เจชเจฐเจฟเจตเจฐเจคเจจ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจธเจŸเจฎ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ. เจ…เจธเจฅเจฟเจฐ เจ‡เฉฐเจกเฉˆเจ•เจธ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจธ เจŸเจพเจˆเจฎ เจœเจผเฉ‹เจจ เจตเจฟเฉฑเจš เจ•เจฟเจธเจฎ เจฆเจพ เจ•เจพเจธเจŸ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

เจœเจฆเฉ‹เจ‚ เจนเฉเจฃ เจคเจพเจ‚ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ

เจ…เจธเฉ€เจ‚ เจŸเจพเจˆเจฎ เจœเจผเฉ‹เจจ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉŒเจœเฉ‚เจฆเจพ เจฎเจฟเจคเฉ€/เจธเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉเจฃ() เจตเจพเจชเจธ เจ•เจฐเจจ เจฆเฉ‡ เจ†เจฆเฉ€ เจนเจพเจ‚เฅค เจชเจฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจธเจตเจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹:

START TRANSACTION;
SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

...

SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

...

SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

COMMIT;

เจฎเจฟเจคเฉ€/เจธเจฎเจพเจ‚ เจ‰เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจนเฉ€ เจตเจพเจชเจธ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจญเจพเจตเฉ‡เจ‚ เจชเจฟเจ›เจฒเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจคเฉ‹เจ‚ เจ•เจฟเฉฐเจจเจพ เจธเจฎเจพเจ‚ เจฒเฉฐเจ˜ เจ—เจฟเจ† เจนเฉ‹เจตเฉ‡! เจ•เฉ€ เจ—เฉฑเจฒ เจนเฉˆ? เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ now() เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจฆเจพ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเจพเจ‚ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจ‡เจน เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพ. เจ•เจฟเจธเฉ‡ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจฆเฉ‡ เจฆเจพเจ‡เจฐเฉ‡ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจ•เฉ‹เจˆ เจตเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจชเจฐเจคเฉฑเจ– เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฒเจชเฉ‡เจŸเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจ•เจพเจฐเจจ เจ…เจธเฉ€เจ‚ เจ‡เจน เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจ•เจฟ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ SELECT now(); เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฎเฉŒเจœเฉ‚เจฆเจพ เจ‡เฉฑเจ• เจจเจนเฉ€เจ‚... เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ‡เจฎเจพเจจเจฆเจพเจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฎเจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ clock_timestamp() เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจซเจพเจˆเจฒ เจจเฉฐเจฌเจฐ เจชเฉฐเจœเฅค เจฌเจฟเฉฑเจŸ

เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจ…เจœเฉ€เจฌ

SELECT '111'::bit(4)

 bit
bit(4)
------
1110

เจŸเจพเจˆเจช เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจฌเจฟเฉฑเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธ เจชเจพเจธเฉ‡ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ? เจ‡เจน เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจœเจพเจชเจฆเจพ เจนเฉˆ. เจชเจฐ เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ 'เจคเฉ‡ เจธเจฟเจฐเจซเจผ เจ†เจงเจพเจฐ เจฆเฉ€ เจนเฉ€ เจตเฉฑเจ–เจฐเฉ€ เจฐเจพเจ เจนเฉˆเฅค เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹: เจœเฉ‡เจ•เจฐ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจ•เจพเจธเจŸ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ…เฉฐเจ•เจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเฉ€, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจน เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ‡เจ—เจพ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€เฅค เจ‡เจน เจธเฉฑเจœเฉ‡ เจชเจพเจธเฉ‡ เจฌเจฟเฉฑเจŸ เจœเฉ‹เฉœเจจ เจ…เจคเฉ‡ เจฌเจฟเฉฑเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฑเจŸเจฃ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจธเฉฑเจœเฉ‡ เจชเจพเจธเฉ‡ เจตเฉ€...

เจซเจพเจˆเจฒ เจจเฉฐเจฌเจฐ เจ›เฉ‡. เจเจฐเฉ‡

เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ NULL เจซเจพเจ‡เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ

SELECT ARRAY[1, 2] || NULL

?column?
integer[]
---------
{1,2}

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ†เจฎ เจฒเฉ‹เจ• SQL 'เจคเฉ‡ เจ‰เจ เจพเจ เจ—เจ เจนเจจ, เจ…เจธเฉ€เจ‚ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เจธ เจธเจฎเฉ€เจ•เจฐเจจ เจฆเจพ เจจเจคเฉ€เจœเจพ NULL เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจชเจฐ เจ‡เจน เจ‰เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจ‡เฉฑเจ• เจเจฐเฉ‡ เจตเจพเจชเจธ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚? เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ…เจงเจพเจฐ NULL เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจ•เจพเจธเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจเจฐเฉ‡_เจ•เฉˆเจŸ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจ…เจธเจชเจธเจผเจŸ เจนเฉˆ เจ•เจฟ เจ‡เจน "เจเจฐเฉ‡ เจ•เฉˆเจŸ" เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจตเจฟเจนเจพเจฐ เจจเฉ‚เฉฐ เจตเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจธเฉฐเจ–เฉ‡เจช. เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ…เจœเฉ€เจฌ เจšเฉ€เจœเจผเจพเจ‚ เจนเจจ. เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจนเฉเจคเฉ‡, เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เฉฐเจจเฉ‡ เจจเจพเจœเจผเฉเจ• เจจเจนเฉ€เจ‚ เจนเจจ เจ•เจฟ เจฌเฉ‡เจฐเจนเจฟเจฎเฉ€ เจจเจพเจฒ เจ…เจฃเจ‰เจšเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจจเฅค เจ…เจคเฉ‡ เจนเฉ‹เจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจธเฉŒเจ– เจœเจพเจ‚ เจ•เฉเจ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฒเจพเจ—เฉ‚ เจนเฉ‹เจฃ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฆเฉเจ†เจฐเจพ เจตเจฟเจ†เจ–เจฟเจ† เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจชเจฐ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจนเฉˆเจฐเจพเจจเฉ€เจœเจจเจ• เจนเจจ. เจ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจจเฉเจนเจพเจ‚ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ. เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจตเจฟเฉฑเจš เจ•เฉเจ เจนเฉ‹เจฐ เจ…เจœเฉ€เจฌ เจœเจพเจ‚ เจ…เจธเจพเจงเจพเจฐเจจ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‹, เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจกเฉ‹เจœเจผเฉ€เจ…เจฐเจพเจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹