เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑเดพ เดธเตเดฑเตเดฑเตเดเดณเตเดเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเดฟเดจเดพเดฏเดฟ (เดตเตเดฏเดคเตเดฏเดธเตเดค
เดเดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดเตเดฒเดฟ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดคเตเดชเตเดฒเตเดฏเดพเดฃเต: "เดเดตเดฟเดเต เดคเดจเตเดจเต
เดเดจเตเดจเดพเตฝ เด โเดเดจเตเดคเตโ เดตเดฟเตปเตเดฑเต เด
เดณเดตเต เดจเตเดฑเตเดเดฃเดเตเดเดฟเดจเต เดฎเตเดเดพเดฌเตเดฑเตเดฑเตเดเดณเดฟเตฝ เด
เดณเดเตเดเดพเตป เดคเตเดเดเตเดเตเดฎเตเดชเตเตพ, เดธเตเดตเดจเด 24x7 เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดคเตเดเดฐเดฃเด, เดจเดฟเดเตเดเดณเตเดเต เดเตเดตเดฟเดคเดคเตเดคเต เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดชเดพเตผเดถเตเดตเดซเดฒเดเตเดเตพ เดเดฃเตเดเดพเดเตเดจเตเดจเต.
PostgreSQL-เตฝ (เด
เดคเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ) เด
เดต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเตป, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฟเดฒ เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเด, เด
เดคเต เดตเตเดเดคเตเดคเดฟเดฒเตเด เดเตเดฑเดเตเด เดตเดฟเดญเดต เดเดชเดญเตเดเดคเตเดคเดฟเดฒเตเด เดเดฒเตเดฒเดพเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเด.
1. เดเดตเดฟเดเต เดเดฏเดฑเตเดฑเดฟ เด เดฏเดฏเตเดเตเดเดฃเด?
เดเดฆเตเดฏเด, เดจเดฎเตเดเตเดเต โเดชเตเดฐเตเดธเดธเตเดธเตโ เดเตเดฏเตเดฏเตเดฃเตเด เดกเดพเดฑเตเดฑ เดเดตเดฟเดเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเดพเด.
1.1 เดคเดพเดคเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเดเดเตพ (เดเตเดฎเตเดชเดฑเดฑเดฟ เดเตเดฌเดฟเตพ)
เดคเดคเตเดตเดคเตเดคเดฟเตฝ, PostgreSQL-เดจเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดเตเดฌเดฟเดณเตเดเตพ เดฎเดฑเตเดฑเตเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต. เด เดคเดฟเดจเดพเตฝ, เด เดจเตเดงเดตเดฟเดถเตเดตเดพเดธเดเตเดเตพ เดเดทเตเดเดชเตเดชเตเดเตเดจเตเดจเต "เด เดตเดฟเดเตเดฏเตเดณเตเดณเดคเตเดฒเตเดฒเดพเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เด เดตเดธเดพเดจเดฟเดเตเดเตเด". เดเดจเตเดจเดพเตฝ เดจเดฟเดฐเดตเดงเดฟ เดเดพเดฐเตเดฏเดฎเดพเดฏ เดตเตเดฏเดคเตเดฏเดพเดธเดเตเดเดณเตเด เดเดฃเตเดเต.
เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดเดฃเดเตเดทเดจเตเด เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด "เดจเตเดฏเดฟเดเดธเตเดชเตเดธเต"
เดฐเดฃเตเดเต เดเดฃเดเตเดทเดจเตเดเตพ เดเดฐเต เดธเดฎเดฏเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ CREATE TABLE x
, เด
เดชเตเดชเตเตพ เดเตผเดเตเดเตเดเตเดเดฟเดฒเตเด เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดฒเดญเดฟเดเตเดเตเด เด
เดจเดจเตเดฏเดฎเดพเดฏ เดคเตเดฑเตเดฑเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดตเดธเตเดคเตเดเตเดเตพ.
เดเดจเตเดจเดพเตฝ เดเดฐเตเดตเดฐเตเด เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเตฝ CREATE TEMPORARY TABLE x
, เด
เดชเตเดชเตเตพ เดฐเดฃเตเดเตเดชเตเดฐเตเด เด
เดคเต เดธเดพเดงเดพเดฐเดฃ เดฐเตเดคเดฟเดฏเดฟเตฝ เดเตเดฏเตเดฏเตเด, เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดฒเดญเดฟเดเตเดเตเด เดจเดฟเดเตเดเดณเตเดเต เดชเดเตผเดชเตเดชเต เดชเดเตเดเดฟเดเดเตพ. เด
เดตเตผเดเตเดเดฟเดเดฏเดฟเตฝ เดชเตเดคเตเดตเดพเดฏเดฟ เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ.
เดตเดฟเดเตเดเตเดฆเดฟเดเตเดเตเดฎเตเดชเตเตพ "เดธเตเดตเดฏเด เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเด"
เดเดฃเดเตเดทเตป เด
เดเดฏเตโเดเตเดเตเดฎเตเดชเตเตพ, เดเดฒเตเดฒเดพ เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดเตเดฌเดฟเดณเตเดเดณเตเด เดธเตเดตเดฏเดฎเตเดต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด DROP TABLE x
เด
เดฒเตเดฒเดพเดคเต เดเดฐเต เดเดพเดฐเตเดฏเดตเตเดฎเดฟเดฒเตเดฒ...
เดจเดฟเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เดเดเดชเดพเดเต เดฎเตเดกเดฟเตฝ pgbouncer, เด เดเดฃเดเตเดทเตป เดเดชเตเดชเตเดดเตเด เดธเดเตเดตเดฎเดพเดฃเตเดจเตเดจเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดจเตเดจเดคเต เดคเตเดเดฐเตเดจเตเดจเต, เด เดคเดฟเตฝ เด เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเด เดเดชเตเดชเตเดดเตเด เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเต.
เด
เดคเดฟเดจเดพเตฝ, เดฎเดฑเตเดฑเตเดฐเต เดเดฃเดเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต pgbouncer-เดฒเตเดเตเดเต เดเดคเต เดตเตเดฃเตเดเตเด เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฐเต เดชเดฟเดถเดเดฟเดจเต เดเดพเดฐเดฃเดฎเดพเดเตเด. เดเดจเตเดจเดพเตฝ เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดฎเดฑเดฟเดเดเดเตเดเดพเตป เดเดดเดฟเดฏเตเด CREATE TEMPORARY TABLE IF NOT EXISTS x
.
เดถเดฐเดฟเดฏเดพเดฃเต, เดเดจเตเดคเดพเดฏเดพเดฒเตเด เดเดคเต เดเตเดฏเตเดฏเดพเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต, เดเดพเดฐเดฃเด "เดฎเตเตป เดเดเดฎเดฏเดฟเตฝ" เดจเดฟเดจเตเดจเต เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑ เดจเดฟเดเตเดเตพเดเตเดเต "เดชเตเดเตเดเตเดจเตเดจเต" เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด. เดชเดเดฐเด, เดฎเดพเดจเตเดตเตฝ เดตเดพเดฏเดฟเดเตเดเต เดเดฐเต เดชเดเตเดเดฟเด เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เด
เดคเต เดเตเตผเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดเดพเดฃเตเดจเตเดจเดคเต เดตเดณเดฐเต เดจเดฒเตเดฒเดคเดพเดฃเต ON COMMIT DROP
- เด
เดคเดพเดฏเดคเต, เดเดเดชเดพเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดฎเตเดชเตเตพ, เดชเดเตเดเดฟเด เดธเตเดตเดฏเดฎเตเดต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด.
เดจเตเตบ-เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเตป
เด เดต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดฃเดเตเดทเดจเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเดเดเตพ เดเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ. เดชเดเตเดทเต เดเดคเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเดเตเด เดฑเตเดเตเดเตเตผเดกเดฟเดเดเดฟเตปเตเดฑเต เดเดตเดถเตเดฏเดเดค เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต เดเตเดฎเตเดชเดพเดฐเด + เดตเดพเตพ, เด เดคเดฟเดจเดพเตฝ เด เดคเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเตเดเตเด/เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด/เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด เดตเดณเดฐเต เดตเตเดเดคเดฏเตเดณเตเดณเดคเดพเดฃเต.
เดเดจเตเดจเดพเตฝ เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดเตเดฌเดฟเตพ เดเดชเตเดชเตเดดเตเด "เดเดคเดพเดฃเตเดเต เดธเดพเดงเดพเดฐเดฃ" เดชเดเตเดเดฟเดเดฏเดพเดฏเดคเดฟเดจเดพเตฝ, เด เดคเต เดเดฐเต เดชเดเตผเดชเตเดชเดฟเตฝ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดเตเดฑเดเตเดเดคเต เดเดชเตเดชเตเดดเตเดเตเดเดฟเดฒเตเด, เด เดจเตเดฌเดจเตเดง เดชเดพเดเตเดเต เดตเดณเดฐเตเดเตเดเดพเดฒเดฎเดพเดฏเดฟ เดชเตเดฐเดเดฐเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเดฒเตเด.
1.2 เดฒเตเดเต เดเตเดฏเตเดฏเดพเดคเตเดค เดฎเตเดถ
เดเดจเตเดจเดพเตฝ เดเดจเตเดคเตเดเตเดฏเตเดฏเดฃเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเดเดชเดพเดเดฟเดจเตเดณเตเดณเดฟเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดเดดเดฟเดฏเดพเดคเตเดค เดเดคเตเดเตเดเดฟเดฒเตเด เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเตเดณเตเดณ ETL เดชเตเดฐเตเดธเดธเตเดธเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเตเดชเตเดดเตเด เดเดฃเตเดเต เดเดเดชเดพเดเต เดฎเตเดกเดฟเตฝ pgbouncer? ..
เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดกเดพเดฑเตเดฑ เดซเตเดฒเต เดตเดณเดฐเต เดตเดฒเตเดคเดพเดฃเต เดเดฐเต เดเดฃเดเตเดทเดจเดฟเตฝ เดฎเดคเดฟเดฏเดพเดฏ เดฌเดพเตปเดกเตโเดตเดฟเดกเตเดคเตเดคเต เดเดฒเตเดฒ เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต (เดตเดพเดฏเดฟเดเตเดเตเด, เดเดฐเต เดธเดฟเดชเดฟเดฏเตเดตเตเด เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเต)?..
เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฟเดฒ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดเตเดเตเดจเตเดจเต เด เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฌเดจเตเดงเดเตเดเดณเดฟเตฝ?..
เดเดตเดฟเดเต เดเดฐเต เดเดชเตเดทเตป เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต - เดคเดพเตฝเดเตเดเดพเดฒเดฟเดเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดชเดเตเดเดฟเด เดคเดพเตฝเดเตเดเดพเดฒเดฟเดเดฎเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเดเตเด. เดชเตบ, เด เดคเต. เด เดคเดพเดฃเต:
- เดเดฐเตเดฎเดพเดฏเตเด เดตเดฟเดญเดเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดชเดฐเดฎเดพเดตเดงเดฟ เดเตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เดชเตเดฐเตเดเดณเตเดณเตเดณ "เดเตปเตเดฑเต เดธเตเดตเดจเตเดคเด" เดชเดเตเดเดฟเดเดเตพ เดธเตเดทเตเดเดฟเดเตเดเต
- เดเดเตเดธเตเดเตเดฐเดพเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเด: เดเดฐเต เดฌเดพเดนเตเดฏ เดเดฑเดตเดฟเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดเดชเดฏเตเดเดฟเดเตเดเต เด เดต เดจเดฟเดฑเดเตเดเต
- เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเด: เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดคเต, เดเต เดฒเดฟเดเตเดเดฟเดเดเต เดซเตเตฝเดกเตเดเตพ เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเต
- เดญเดพเดฐเด: เดเดพเตผเดเตเดฑเตเดฑเต เดเตเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเตเดเต เดคเดฏเตเดฏเดพเดฑเดพเดฏ เดกเดพเดฑเตเดฑ เดชเดเตผเดจเตเดจเต
- "เดเตปเตเดฑเต" เดชเดเตเดเดฟเดเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟ
เดเดชเตเดชเตเตพ - เดคเตเดฒเดคเตเดคเดฟเตฝ เดเดฐเต เดเดเตเด. เดธเดคเตเดฏเดคเตเดคเดฟเตฝ, PostgreSQL-เดฒเต เดเดฒเตเดฒเดพ เดเดดเตเดคเตเดคเตเดเดณเตเด เดฐเดฃเตเดเตเดคเดตเดฃ เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต - COMMIT
'เดจเดเตเดเดฟ เดเตปเดกเต ROLLBACK
'เดถเตเดจเตเดฏเดฎเดพเดฏ เดเดเดชเดพเดเตเดเตพ.
เดเดจเตเดจเดพเตฝ เดเดเตเดเตพเดเตเดเต เดเดคเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ! เดเดเตเดเตพเดเตเดเต เดฎเตเดดเตเดตเตป เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเด เดเดฃเตเดเต เดเดจเตเดจเตเดเดฟเตฝ เด เดคเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดตเดฟเดเดฏเดฟเดเตเดเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดคเต เดตเดฟเดเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.. เดเดคเตเดฐ เดเตปเตเดฑเตผเดฎเตเดกเดฟเดฏเดฑเตเดฑเต เดเดเดชเดพเดเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเดฎเตเดจเตเดจเดคเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ - โเดฎเดงเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดเตเดฐเดฟเดฏ เดคเตเดเดฐเตเดจเตเดจเดคเดฟเตฝโ เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒ, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เด เดคเต เดเดตเดฟเดเตเดฏเดพเดฃเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดฒเตเดฒเดพเดคเตเดคเดชเตเดชเตเตพ.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, PostgreSQL เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ, เดชเดคเดฟเดชเตเดชเต 9.1-เตฝ เดเดคเตเดคเดฐเดฎเตเดฐเต เดเดพเดฐเตเดฏเด เด
เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเต
เด เดธเตเดเดจ เดเดชเดฏเตเดเดฟเดเตเดเต, เดชเดเตเดเดฟเด เด เตบเดฒเตเดเต เดเตเดฏเตเดคเดคเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เตบเดฒเตเดเต เดเตเดฏเตเดฏเดพเดคเตเดค เดเตเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเตเดเต เดเดดเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ, เดฑเตเดฑเตเดฑเต-เดเดนเตเดกเต เดฒเตเดเดฟเดฒเตเดเต เดเดเดจเตเดจเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ (เด เดงเตเดฏเดพเดฏเด 29 เดเดพเดฃเตเด), เดเดคเต เด เดคเตเดคเดฐเด เดเตเดฌเดฟเดณเตเดเตพเดเตเดเต เดเดพเดฐเดฃเดฎเดพเดเตเดจเตเดจเต. เดชเดคเดฟเดตเดฟเดฒเตเด เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เด เดตเตผ เดชเดฐเดพเดเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดเตเดคเดฐเดฒเตเดฒ; เดธเตเตผเดตเตผ เดคเดเดฐเดพเตผ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดเดฟเดฏเดจเตเดคเดฐ เดทเดเตเดเตเดกเตเตบ เดธเดเดญเดตเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดฐเต เด เตบเดฒเตเดเต เดเตเดฏเตเดค เดชเดเตเดเดฟเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดตเตเดเตเดเดฟเดเตเดเตเดฐเตเดเตเดเดฟ. เดเตเดเดพเดคเต, เด เตบเดฒเตเดเต เดเตเดฏเตเดค เดชเดเตเดเดฟเดเดฏเดฟเดฒเต เดเดณเตเดณเดเดเตเดเดเตเดเตพ เดชเดเตผเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ เด เดเดฟเดฎ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเดเตเดเต. เดฒเตเดเต เดเตเดฏเตเดฏเดพเดคเตเดค เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดธเตเดทเตโเดเดฟเดเตเด เดเดฒเตเดฒเดพ เดธเตเดเดฟเดเดเดณเตเด เดธเตเดตเดฏเดฎเตเดต เด เตบเดฒเตเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเด.
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, เด เดคเต เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเตเตผเดตเตผ "เดตเตเดดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ", เด เดคเต เด เดฐเตเดเดเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดจเตเดจเดพเตฝ เดเดคเต เดเดคเตเดฐ เดคเดตเดฃ เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต "เดชเตเดจเดฐเตเดเตเดเตเดตเดฟเดชเตเดชเดฟเดเตเดเดคเดฟเดจเต" เดถเตเดทเด "เดฎเดงเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต" เดเดคเต เดเดเตเดเดจเต เดถเดฐเดฟเดฏเดพเดเตเดเดพเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเดณเตเดเต ETL เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเต เด เดฑเดฟเดฏเดพเดฎเต?
เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเตเดธเต เดจเดฟเดเตเดเดณเตเดเตเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเตเดเตเดเดฟเตฝ, เดเดชเดฏเตเดเดฟเดเตเดเตเด UNLOGGED
เดชเดเตเดทเต เดเดฐเดฟเดเตเดเดฒเตเด เดฏเดฅเดพเตผเดคเตเดฅ เดชเดเตเดเดฟเดเดเดณเดฟเตฝ เด เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดฐเตเดคเต, เด
เดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดฐเดฟเดฏเดชเตเดชเตเดเตเดเดคเดพเดฃเต.
1.3 เดเดฎเตเดฎเดฟเดฑเตเดฑเดฟเตฝ { เดตเดฐเดฟเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด | เดกเตเดฐเตเดชเตเดชเต}
เดเดฐเต เดชเดเตเดเดฟเด เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเต เดเดเดชเดพเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดฎเตเดชเตเตพ เดฏเดพเดจเตเดคเตเดฐเดฟเด เดธเตเดตเดญเดพเดตเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เด เดจเดฟเตผเดฎเตเดฎเดพเดฃเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดเตบ ON COMMIT DROP
เดเดพเตป เดเดคเดฟเดจเดเด เดฎเตเดเดณเดฟเตฝ เดเดดเตเดคเดฟ, เด
เดคเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต DROP TABLE
, เดเดจเตเดจเดพเตฝ เดเตเดเต ON COMMIT DELETE ROWS
เดธเดพเดนเดเดฐเตเดฏเด เดเตเดเตเดคเตฝ เดฐเดธเดเดฐเดฎเดพเดฃเต - เด
เดคเต เดเดตเดฟเดเต เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต TRUNCATE TABLE
.
เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเดเดฏเตเดเต เดฎเตเดฑเตเดฑเดพ-เดตเดฟเดตเดฐเดฃเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเตเดดเตเดตเตป เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเดฑเตเด เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดเตเดฌเดฟเดณเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดคเตเดเตผเดจเตเดจเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดเตเดฌเดฟเดณเตเดเตพ เดจเดฟเดฐเดจเตเดคเดฐเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเตเด เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเดณเตเดเดณเตเดเต เดเตเดฐเตเดคเดฐเดฎเดพเดฏ "เดตเตเดเตเดเด" เดฒเตเดเตเดเต เดจเดฏเดฟเดเตเดเตเดจเตเดจเต pg_class, pg_attribute, pg_attrdef, pg_depend,...
เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เดเดฃเดเตเดทเดจเดฟเตฝ เดเดฐเต เดคเตเดดเดฟเดฒเดพเดณเดฟ เดเดฃเตเดเตเดจเตเดจเต เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเตเด, เด เดคเต เดเดฐเต เดธเตเดเตเดเตปเดกเดฟเดฒเตเด เดเดฐเต เดชเตเดคเดฟเดฏ เดเดเดชเดพเดเต เดคเตเดฑเดเตเดเตเดเดฏเตเด เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดเตเดฌเดฟเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต... เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเดณเตเดเดณเดฟเตฝ เด เดงเดฟเดเดฎเดพเดฏเดฟ เดฎเดพเดฒเดฟเดจเตเดฏเด เดเตเดฎเดฟเดเตเดเตเดเตเดเตเด. เดเดคเต เดเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเด เด เดงเดฟเด เดฌเตเดฐเตเดเตเดเตเดเตพ เดเดฃเตเดเดพเดเตเดเตเด.
เดชเตเดคเตเดตเต, เดเดคเต เดเตเดฏเตเดฏเดฐเตเดคเต! เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดคเต เดเตเดเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฃเต CREATE TEMPORARY TABLE x ... ON COMMIT DELETE ROWS
เดเดเดชเดพเดเต เดธเตเดเตเดเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเดเตเดเตเดเตเด - เดคเตเดเตผเดจเตเดจเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเดเดชเดพเดเดฟเตปเตเดฑเตเดฏเตเด เดเดฐเดเดญเดคเตเดคเตเดเต เดชเดเตเดเดฟเดเดเตพ เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเด (เดเดฐเต เดเตเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเด CREATE
), เดชเดเตเดทเต เดถเตเดจเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดจเดจเตเดฆเดฟ TRUNCATE
เดฎเตเดฎเตเดชเดคเตเดคเต เดเดเดชเดพเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเดฎเตเดชเตเตพ (เด
เดคเดฟเตปเตเดฑเต เดเตเดณเตเด เดเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเต).
1.4 เดชเตเดฒเต...เดเตพเดชเตเดชเตเดเต...
เดคเดพเตฝเดเดพเดฒเดฟเด เดเตเดฌเดฟเดณเตเดเตพเดเตเดเตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เดเดชเดฏเตเด เดเตเดธเตเดเดณเดฟเตฝ เดเดจเตเดจเต เดตเดฟเดตเดฟเดง เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฑเดเตเดเตเดฎเดคเดฟเดเดณเดพเดฃเตเดจเตเดจเต เดเดพเตป เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเต - เดเตเดเดพเดคเต เดกเตเดตเดฒเดชเตเดชเตผ เดเตเดทเตเดฃเดฟเดคเดจเดพเดฏเดฟ เดเดพเตผเดเตเดฑเตเดฑเต เดเตเดฌเดฟเดณเดฟเตปเตเดฑเต เดซเตเตฝเดกเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดคเตปเตเดฑเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเตเดฐเดเตเดฏเดพเดชเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดฟ เดเดเตเดเดฟเดเตเดเตเดจเตเดจเต...
เดเดจเตเดจเดพเตฝ เด เดฒเดธเดคเดฏเดพเดฃเต เดชเตเดฐเตเดเดคเดฟเดฏเตเดเต เดเดเตเดเดฟเตป! เด เดคเตเดเตเดพเดฃเตเดเดพเดฃเต "เดธเดพเดฎเตเดชเดฟเตพ เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ" เดเดฐเต เดชเตเดคเดฟเดฏ เดชเดเตเดเดฟเด เดธเตเดทเตเดเดฟเดเตเดเตเด เดเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด:
CREATE TEMPORARY TABLE import_table(
LIKE target_table
);
เดจเดฟเดเตเดเตพเดเตเดเต เด เดชเดเตเดเดฟเดเดฏเดฟเดฒเตเดเตเดเต เดงเดพเดฐเดพเดณเด เดกเดพเดฑเตเดฑ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด เดคเดฟเดฒเตเดเต เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดเดฐเดฟเดเตเดเดฒเตเด เดตเตเดเดคเตเดคเดฟเดฒเดพเดเดฟเดฒเตเดฒ. เดเดจเตเดจเดพเตฝ เดเดคเดฟเดจเต เดเดฐเต เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดชเดฐเดฟเดนเดพเดฐเดฎเตเดฃเตเดเต - เดธเตเดเดฟเดเดเตพ! เดเดชเตเดชเด, เด เดคเต, เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเด เดชเดเตเดเดฟเดเดฏเตเดเตเดเตเด เดธเตเดเดฟเดเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด.
เดชเดฒเดชเตเดชเตเดดเตเด, เดเดตเดถเตเดฏเดฎเดพเดฏ เดธเตเดเดฟเดเดเตพ เดเดพเตผเดเตเดฑเตเดฑเต เดชเดเตเดเดฟเดเดฏเตเดเต เดธเตเดเดฟเดเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดเดดเตเดคเดพเด LIKE target_table INCLUDING INDEXES
.
เดจเดฟเดเตเดเตพเดเตเดเตเด เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ DEFAULT
-เดฎเตเดฒเตเดฏเดเตเดเตพ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเตเดฐเดพเดฅเดฎเดฟเด เดเต เดฎเตเดฒเตเดฏเดเตเดเตพ เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต), เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด LIKE target_table INCLUDING DEFAULTS
. เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ - LIKE target_table INCLUDING ALL
โ เดชเดเตผเดชเตเดชเตเดเตพ เดกเดฟเดซเตเตพเดเตเดเตเดเตพ, เดธเตเดเดฟเดเดเตพ, เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดเตเดเตพ,...
เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดคเดพเดฃเตเดเตเดเดฟเตฝ เดเดตเดฟเดเต เดจเดฟเดเตเดเตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต เดธเตเดเดฟเดเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตป เดชเดเตเดเดฟเด เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเด, เดคเตเดเตผเดจเตเดจเต เดกเดพเดฑเตเดฑ เดฒเตเดกเตเดเตเดฏเตเดฏเดพเตป เดเตเดเตเดคเตฝ เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเดเดจเดฟเดเตเดเตพ เดเดฆเตเดฏเด เดเดฒเตเดฒเดพเด เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดชเดฟเดจเตเดจเตเดเต เดธเตเดเดฟเดเดเตพ เดเตเดฐเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ - เดเดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดจเตเดเตเดเตเด
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ,
2. เดเดเตเดเดจเต เดเดดเตเดคเดพเด?
เดเดพเตป เดชเดฑเดฏเดเตเดเต - เด
เดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเด
"เดชเดพเดเตเดเต" เดเดจเตเดจเดคเดฟเดจเต เดชเดเดฐเด เดเดดเตเดเตเด INSERT
,
3. เดเดเตเดเดจเต เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเด?
เด เดคเดฟเดจเดพเตฝ, เดจเดฎเตเดฎเตเดเต เดเดฎเตเดเด เดเดคเตเดชเตเดฒเตเดฏเดพเดฏเดฟเดฐเดฟเดเตเดเดเตเดเต:
- เดจเดฟเดเตเดเดณเตเดเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดเตเดฒเดฏเตปเตเดฑเต เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเดเตเดเดฟเด เดจเดฟเดเตเดเตพเดเตเดเตเดฃเตเดเต 1 เดฎเดฟ เดฑเตเดเตเดเตเตผเดกเตเดเตพ
- เดเดฒเตเดฒเดพ เดฆเดฟเดตเดธเดตเตเด เดเดฐเต เดเตเดฒเดฏเตปเตเดฑเต เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเดฟเดฏเตเดฐเตเดฃเตเดฃเด เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต เดฎเตเดดเตเดตเตป "เดเดฟเดคเตเดฐเด"
- เด เดจเตเดญเดตเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เด เดคเต เดเดพเดฒเดพเดเดพเดฒเดเตเดเดณเดฟเตฝ เด เดฑเดฟเดฏเดพเด 10K-เตฝ เดเตเดเตเดคเตฝ เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดฒเตเดฒ
เด
เดคเตเดคเดฐเดฎเตเดฐเต เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตปเตเดฑเต เดเดฐเต เดเตเดฒเดพเดธเดฟเดเต เดเดฆเดพเดนเดฐเดฃเด
3.1 เดชเตเตผเดฃเตเดฃ เดธเดฎเดจเตเดตเดฏ เด เตฝเดเตเดฐเดฟเดคเด
เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดจเดฟเดเตเดเตพเดเตเดเต เดกเดพเดฑเตเดฑ เดชเตเดจเดเดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดฃเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเตเดจเตเดจเต เดชเดฑเดฏเดพเด - เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเตเดฎเดฟเดฒเตเดเตเดเต เดชเดเตเดเดฟเด เดเตเดฃเตเดเตเดตเดฐเดฟเด, เด เดคเดพเดฏเดคเต:
- เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเด เดเดจเดฟ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค เดเดฒเตเดฒเดพเด
- เด เดชเตเดเตเดฐเตเดกเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดคเตเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฎเดพเดฏ เดเดฒเตเดฒเดพเด
- เดคเดฟเดฐเตเดเตเด เดเดคเตเดตเดฐเต เดธเดเดญเดตเดฟเดเตเดเดพเดคเตเดคเดคเตเดฒเตเดฒเดพเด
เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เด เดเตเดฐเดฎเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดคเตเดคเตเดฃเตเดเดคเต? เดเดพเดฐเดฃเด เดเดเตเดเดจเตเดฏเดพเดฃเต เดฎเตเดถเดฏเตเดเต เดตเดฒเดฟเดชเตเดชเด เดเตเดฑเดเตเดเดคเต (
dst-เตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด
เดเดฒเตเดฒ, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดฐเดฃเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเดฟเดฒเตเดเต เดจเตเดเดพเดจเดพเดเตเด:
- เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเด (
DELETE
) เดชเตเดคเตเดตเต เดเดฒเตเดฒเดพเด - เดคเดฟเดฐเตเดเตเด เดเดฒเตเดฒเดพเด เดชเตเดคเดฟเดฏ เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต
เดเดจเตเดจเดพเตฝ เด เดคเต เดธเดฎเดฏเด, เดเดเดตเดฟเดธเดฟเดธเดฟเดเตเดเต เดจเดจเตเดฆเดฟ, เดชเดเตเดเดฟเดเดฏเตเดเต เดตเดฒเดฟเดชเตเดชเด เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดฐเดฃเตเดเตเดคเดตเดฃ เดตเตผเดฆเตเดงเดฟเดเตเดเตเด! 1K เด เดชเตโเดกเตเดฑเตเดฑเต เดเดพเดฐเดฃเด +10M เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเดเต เดเดฟเดคเตเดฐเดเตเดเตพ เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต...
เดตเตเดเตเดเดฟเดเตเดเตเดฐเตเดเตเดเตเด dst
เดฎเตเดดเตเดตเตป เดเดพเดฌเตโเดฒเตเดฑเตเดฑเตเด เดตเดณเดฐเต เดตเดฟเดฒเดเตเดฑเดเตเด เดฐเตเดคเดฟเดฏเดฟเตฝ เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดเตเดเตเดคเตฝ เดชเดฐเดฟเดเดฏเดธเดฎเตเดชเดจเตเดจเดจเดพเดฏ เดเดฐเต เดกเตเดตเดฒเดชเตเดชเตผเดเตเดเต เด เดฑเดฟเดฏเดพเด:
- เดฎเดพเดฏเตเดเตเดเดพเตป (
TRUNCATE
) เดฎเตเดดเตเดตเตป เดชเดเตเดเดฟเดเดฏเตเด - เดคเดฟเดฐเตเดเตเด เดเดฒเตเดฒเดพเด เดชเตเดคเดฟเดฏ เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต
เดฐเตเดคเดฟ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฃเต,
เด เดคเต เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต:
- เดเดเตเดเตพ เดคเตเดเดเตเดเตเดเดฏเดพเดฃเต เดฆเตเตผเดเดเดพเดฒ เดเดเดชเดพเดเต
TRUNCATE
เดเตเดฎเดคเตเดคเตเดจเตเดจเต เดเดเตเดธเตเดเตเดฒเตเดธเตเดตเต เดเดเตเดธเดธเต- เดคเดเดฏเตเดจเตเดจเต- เดเดเตเดเตพ เดฆเตเตผเดเดจเตเดฐเด เดเตเตผเดเตเดเตฝ เดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดธเดฎเดฏเดคเตเดคเต เดฎเดฑเตเดฑเตเดฒเตเดฒเดพเดตเดฐเตเด เดชเตเดฒเตเด เดเดดเดฟเดฏเดฟเดฒเตเดฒ
SELECT
เดเดจเตเดคเต เดเตเดดเดชเตเดชเดฎเดฟเดฒเตเดฒ...
เดชเดเตเดเดฟเด เดฎเดพเดฑเตเดฑเตเด... เดชเตเดจเตผเดจเดพเดฎเดเดฐเดฃเด เดเตเดฏเตเดฏเตเด... / เดกเตเดฐเตเดชเตเดชเต เดเตเดฌเดฟเตพ...
เดเดฐเต เดชเตเดคเดฟเดฏ เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเดฒเตเดฒเดพเด เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเด, เดคเตเดเตผเดจเตเดจเต เดชเดดเดฏเดคเดฟเดจเต เดชเดเดฐเด เดชเตเดฐเตเดฎเดพเดฑเตเดฑเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดฐเต เดฌเดฆเตฝ. เดเตเดฑเดเตเดเต เดฎเตเดถเด เดเตเดฑเดฟเดฏ เดเดพเดฐเตเดฏเดเตเดเตพ:
- เดเดชเตเดชเตเดดเตเด เดเดเตเดธเตเดเตเดฒเตเดธเตเดตเต เดเดเตเดธเดธเต, เดธเดฎเดฏเด เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเดฒเตเด
- เด เดชเดเตเดเดฟเดเดฏเตโเดเตเดเดพเดฏเตเดณเตเดณ เดเดฒเตเดฒเดพ เด
เดจเตเดตเตเดทเดฃ เดชเตเดฒเดพเดจเตเดเดณเตเด/ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเดเตเดเดฃเดเตเดเตเดเดณเตเด เดชเตเดจเดเดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต,
เดตเดฟเดถเดเดฒเดจเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต - เดเดฒเตเดฒเดพ เดตเดฟเดฆเตเดถ เดเตเดเดณเตเด เดคเดเตผเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (FK) เดฎเตเดถเดฏเดฟเดฒเตเดเตเดเต
เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเด เดธเตเดฎเตบ เดฑเดฟเดเตโเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต WIP เดชเดพเดเตเดเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต ALTER
เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเดเตเดเดฃเดเตเดเตเดเดณเตเด เดเดซเตโเดเตเดฏเตเด เดธเตเดชเตผเดถเดฟเดเตเดเดพเดคเต เดซเดฏเตฝ เดคเดฒเดคเตเดคเดฟเตฝ เดเตเดฌเดฟเตพ เดฌเตเดกเดฟ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด, เดชเดเตเดทเต เดเตเดฑเด เดถเตเดเดฐเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด, เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด, เดเตเตผเดเตเดเตเด
เด เดคเดฟเดจเดพเตฝ, เดฎเตเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดจเตเตบ-เดฌเตเดฒเตเดเตเดเดฟเดเดเต เดเดชเตเดทเดจเดฟเตฝ เดเดเตเดเตพ เดธเตเดฅเดฟเดฐเดคเดพเดฎเดธเดฎเดพเดเตเดเตเดจเตเดจเต. เดเดคเดพเดฃเตเดเต เดฎเตเดจเตเดจเต... เดเดคเต เดเดเตเดเดจเต เดเดฑเตเดฑเดตเตเด เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเดพเด?
-- ะฒัะต ะดะตะปะฐะตะผ ะฒ ัะฐะผะบะฐั
ััะฐะฝะทะฐะบัะธะธ, ััะพะฑั ะฝะธะบัะพ ะฝะต ะฒะธะดะตะป "ะฟัะพะผะตะถััะพัะฝัั
" ัะพััะพัะฝะธะน
BEGIN;
-- ัะพะทะดะฐะตะผ ะฒัะตะผะตะฝะฝัั ัะฐะฑะปะธัั ั ะธะผะฟะพััะธััะตะผัะผะธ ะดะฐะฝะฝัะผะธ
CREATE TEMPORARY TABLE tmp(
LIKE dst INCLUDING INDEXES -- ะฟะพ ะพะฑัะฐะทั ะธ ะฟะพะดะพะฑะธั, ะฒะผะตััะต ั ะธะฝะดะตะบัะฐะผะธ
) ON COMMIT DROP; -- ะทะฐ ัะฐะผะบะฐะผะธ ััะฐะฝะทะฐะบัะธะธ ะพะฝะฐ ะฝะฐะผ ะฝะต ะฝัะถะฝะฐ
-- ะฑััััะพ-ะฑััััะพ ะฒะปะธะฒะฐะตะผ ะฝะพะฒัะน ะพะฑัะฐะท ัะตัะตะท COPY
COPY tmp FROM STDIN;
-- ...
-- .
-- ัะดะฐะปัะตะผ ะพััััััะฒัััะธะต
DELETE FROM
dst D
USING
dst X
LEFT JOIN
tmp Y
USING(pk1, pk2) -- ะฟะพะปั ะฟะตัะฒะธัะฝะพะณะพ ะบะปััะฐ
WHERE
(D.pk1, D.pk2) = (X.pk1, X.pk2) AND
Y IS NOT DISTINCT FROM NULL; -- "ะฐะฝัะธะดะถะพะนะฝ"
-- ะพะฑะฝะพะฒะปัะตะผ ะพััะฐะฒัะธะตัั
UPDATE
dst D
SET
(f1, f2, f3) = (T.f1, T.f2, T.f3)
FROM
tmp T
WHERE
(D.pk1, D.pk2) = (T.pk1, T.pk2) AND
(D.f1, D.f2, D.f3) IS DISTINCT FROM (T.f1, T.f2, T.f3); -- ะฝะตะทะฐัะตะผ ะพะฑะฝะพะฒะปััั ัะพะฒะฟะฐะดะฐััะธะต
-- ะฒััะฐะฒะปัะตะผ ะพััััััะฒัััะธะต
INSERT INTO
dst
SELECT
T.*
FROM
tmp T
LEFT JOIN
dst D
USING(pk1, pk2)
WHERE
D IS NOT DISTINCT FROM NULL;
COMMIT;
3.2 เดชเตเดธเตเดฑเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเด
เด เดคเต KLADR-เตฝ, เดฎเดพเดฑเตเดฑเดฟเดฏ เดเดฒเตเดฒเดพ เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเด เดชเตเดธเตเดฑเตเดฑเต-เดชเตเดฐเตเดธเดธเดฟเดเดเดฟเดฒเตเดเต เด เดงเดฟเดเดฎเดพเดฏเดฟ เดฑเตบ เดเตเดฏเตเดฏเดฃเด - เดจเตเตผเดฎเดฒเตเดธเตเดกเต, เดเตเดตเตเดกเตเดเตพ เดนเตเดฒเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดเดจเดเดณเดฟเดฒเตเดเตเดเต เดเตเดฐเตเดเตเดเตเดเดฏเตเด เดตเตเดฃเด. เดชเดเตเดทเต เดจเดฟเดจเดเตเดเต เดเดเตเดเดจเต เด เดฑเดฟเดฏเดพเด... เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเดจเตเดคเดพเดฃเต เดฎเดพเดฑเดฟเดฏเดคเตเดธเดฟเตปเดเตเดฐเตเดฃเตเดธเตเดทเตป เดเตเดกเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดเตเดเดพเดคเต, เด เดคเต เดธเตเดชเตผเดถเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต?
เดธเดฎเดจเตเดตเดฏ เดธเดฎเดฏเดคเตเดคเต เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต เดเดดเตเดคเตเดคเต เดเดเตเดธเดธเต เดเดณเตเดณเต เดเดเตเดเดฟเตฝ, เดเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดฐเดฟเดเตผ เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด:
-- ัะตะปะตะฒัะต ัะฐะฑะปะธัั
CREATE TABLE kladr(...);
CREATE TABLE kladr_house(...);
-- ัะฐะฑะปะธัั ั ะธััะพัะธะตะน ะธะทะผะตะฝะตะฝะธะน
CREATE TABLE kladr$log(
ro kladr, -- ััั ะปะตะถะฐั ัะตะปัะต ะพะฑัะฐะทั ะทะฐะฟะธัะตะน ััะฐัะพะน/ะฝะพะฒะพะน
rn kladr
);
CREATE TABLE kladr_house$log(
ro kladr_house,
rn kladr_house
);
-- ะพะฑัะฐั ััะฝะบัะธั ะปะพะณะธัะพะฒะฐะฝะธั ะธะทะผะตะฝะตะฝะธะน
CREATE OR REPLACE FUNCTION diff$log() RETURNS trigger AS $$
DECLARE
dst varchar = TG_TABLE_NAME || '$log';
stmt text = '';
BEGIN
-- ะฟัะพะฒะตััะตะผ ะฝะตะพะฑั
ะพะดะธะผะพััั ะปะพะณะณะธัะพะฒะฐะฝะธั ะฟัะธ ะพะฑะฝะพะฒะปะตะฝะธะธ ะทะฐะฟะธัะธ
IF TG_OP = 'UPDATE' THEN
IF NEW IS NOT DISTINCT FROM OLD THEN
RETURN NEW;
END IF;
END IF;
-- ัะพะทะดะฐะตะผ ะทะฐะฟะธัั ะปะพะณะฐ
stmt = 'INSERT INTO ' || dst::text || '(ro,rn)VALUES(';
CASE TG_OP
WHEN 'INSERT' THEN
EXECUTE stmt || 'NULL,$1)' USING NEW;
WHEN 'UPDATE' THEN
EXECUTE stmt || '$1,$2)' USING OLD, NEW;
WHEN 'DELETE' THEN
EXECUTE stmt || '$1,NULL)' USING OLD;
END CASE;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดธเดฎเดจเตเดตเดฏเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเตเดฐเดฟเดเดฑเตเดเตพ เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด (เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดต เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเด ALTER TABLE ... ENABLE TRIGGER ...
):
CREATE TRIGGER log
AFTER INSERT OR UPDATE OR DELETE
ON kladr
FOR EACH ROW
EXECUTE PROCEDURE diff$log();
CREATE TRIGGER log
AFTER INSERT OR UPDATE OR DELETE
ON kladr_house
FOR EACH ROW
EXECUTE PROCEDURE diff$log();
เดคเตเดเตผเดจเตเดจเต เดฒเตเดเต เดเตเดฌเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดเดเตเดเตพ เดถเดพเดจเตเดคเดฎเดพเดฏเดฟ เดเดเตโเดธเตโเดเตเดฐเดพเดเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดงเดฟเด เดนเดพเตปเดกเตโเดฒเดฑเตเดเดณเดฟเดฒเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
3.3 เดฒเดฟเดเตเดเตเดกเต เดธเตเดฑเตเดฑเตเดเตพ เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต
เดเดฑเดตเดฟเดเดคเตเดคเดฟเตปเตเดฑเตเดฏเตเด เดฒเดเตเดทเตเดฏเดธเตเดฅเดพเดจเดคเตเดคเดฟเตปเตเดฑเตเดฏเตเด เดกเดพเดฑเตเดฑเดพ เดเดเดจเดเตพ เดเดฐเตเดชเตเดฒเต เดเดฏเดฟเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดเตเดเตพ เดฎเตเดเดณเดฟเตฝ เดชเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดธเตเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเต. เดเดจเตเดจเดพเตฝ เดเดฐเต เดฌเดพเดนเตเดฏ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด เดชเตโเดฒเตเดกเดฟเดจเต เดจเดฎเตเดฎเตเดเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเต เดธเตเดฑเตเดฑเตเดฑเตเดเต เดเดเดจเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดเดฐเต เดซเตเตผเดฎเดพเดฑเตเดฑเต เดเดฃเตเดเตเดเตเดเดฟเตฝ เดเดจเตเดคเตเดเตเดฏเตเดฏเตเด?
เดเตเดฒเดฏเตปเตเดฑเตเดเดณเตเดเตเดฏเตเด เด เดตเดฐเตเดเต เด เดเตเดเตเดฃเตเดเตเดเดณเตเดเตเดฏเตเด เดธเดเดญเดฐเดฃเด เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดเดเตเดเตเดเดพเด, เดเตเดฒเดพเดธเดฟเดเต "เดฎเดจเดฟ-เดเต-เดตเตบ" เดเดชเตเดทเตป:
CREATE TABLE client(
client_id
serial
PRIMARY KEY
, inn
varchar
UNIQUE
, name
varchar
);
CREATE TABLE invoice(
invoice_id
serial
PRIMARY KEY
, client_id
integer
REFERENCES client(client_id)
, number
varchar
, dt
date
, sum
numeric(32,2)
);
เดเดจเตเดจเดพเตฝ เดเดฐเต เดฌเดพเดนเตเดฏ เดเดฑเดตเดฟเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเตเตบเดฒเตเดกเต "เดเดฒเตเดฒเดพเด เดเดฐเต" เดเดจเตเดจ เดฐเตเดชเดคเตเดคเดฟเตฝ เดจเดฎเตเดฎเดฟเดฒเตเดเตเดเต เดตเดฐเตเดจเตเดจเต:
CREATE TEMPORARY TABLE invoice_import(
client_inn
varchar
, client_name
varchar
, invoice_number
varchar
, invoice_dt
date
, invoice_sum
numeric(32,2)
);
เดตเตเดฏเดเตเดคเดฎเดพเดฏเตเด, เด เดชเดคเดฟเดชเตเดชเดฟเตฝ เดเดชเดญเตเดเตเดคเต เดกเดพเดฑเตเดฑ เดกเตเดฏเตเดชเตเดฒเดฟเดเตเดเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด, เดชเตเดฐเดงเดพเดจ เดฑเตเดเตเดเตเตผเดกเต "เด เดเตเดเตเดฃเตเดเต" เดเดฃเต:
0123456789;ะะฐัั;A-01;2020-03-16;1000.00
9876543210;ะะตัั;A-02;2020-03-16;666.00
0123456789;ะะฐัั;B-03;2020-03-16;9999.00
เดฎเตเดกเดฒเดฟเดจเดพเดฏเดฟ, เดเดเตเดเตพ เดเดเตเดเดณเตเดเต เดเตเดธเตเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเตเด, เดชเดเตเดทเต เดเตผเดเตเดเตเด - COPY
เดเตเดเตเดคเตฝ เดเดพเดฐเตเดฏเดเตเดทเดฎเดฎเดพเดฏเดฟ!
INSERT INTO invoice_import
VALUES
('0123456789', 'ะะฐัั', 'A-01', '2020-03-16', 1000.00)
, ('9876543210', 'ะะตัั', 'A-02', '2020-03-16', 666.00)
, ('0123456789', 'ะะฐัั', 'B-03', '2020-03-16', 9999.00);
เดเดฆเตเดฏเด, เดจเดฎเตเดฎเตเดเต "เดตเดธเตเดคเตเดคเดเตพ" เดชเดฐเดพเดฎเตผเดถเดฟเดเตเดเตเดจเตเดจ "เดตเตเดเตเดเดฒเตเดเตพ" เดนเตเดฒเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด. เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเตปเดตเตเดฏเตโเดธเตเดเตพ เดเดชเดญเตเดเตเดคเดพเดเตเดเดณเต เดชเดฐเดพเดฎเตผเดถเดฟเดเตเดเตเดจเตเดจเต:
CREATE TEMPORARY TABLE client_import AS
SELECT DISTINCT ON(client_inn)
-- ะผะพะถะฝะพ ะฟัะพััะพ SELECT DISTINCT, ะตัะปะธ ะดะฐะฝะฝัะต ะทะฐะฒะตะดะพะผะพ ะฝะตะฟัะพัะธะฒะพัะตัะธะฒั
client_inn inn
, client_name "name"
FROM
invoice_import;
เดเดชเดญเตเดเตเดคเต เดเดกเดฟเดเดณเตเดฎเดพเดฏเดฟ เด เดเตเดเตเดฃเตเดเตเดเตพ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฆเตเดฏเด เด เดเดกเตปเตเดฑเดฟเดซเดฏเดฑเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเดเดฏเต เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดจเดฎเตเดเตเดเต เด เดตเดฏเตเดเตเดเต เดเตเดดเดฟเตฝ เดซเตเตฝเดกเตเดเตพ เดเตเตผเดเตเดเดพเด:
ALTER TABLE invoice_import ADD COLUMN client_id integer;
ALTER TABLE client_import ADD COLUMN client_id integer;
เดฎเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฌเดฟเตพ เดธเดฟเตปเดเตเดฐเตเดฃเตเดธเตเดทเตป เดฐเตเดคเดฟ เดเดฐเต เดเตเดฑเดฟเดฏ เดญเตเดฆเดเดคเดฟเดฏเตเดเต เดจเดฎเตเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด - เดเดเตเดเตพ เดเดพเตผเดเตเดฑเตเดฑเต เดเตเดฌเดฟเดณเดฟเตฝ เดเดจเตเดจเตเด เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดเตเดเตพ เดเตเดฒเดฏเตปเตเดฑเตเดเดณเต "เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดเตเดเดพเตป เดฎเดพเดคเตเดฐเด" เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต:
-- ะฟัะพััะฐะฒะปัะตะผ ะฒ ัะฐะฑะปะธัะต ะธะผะฟะพััะฐ ID ัะถะต ัััะตััะฒัััะธั
ะทะฐะฟะธัะตะน
UPDATE
client_import T
SET
client_id = D.client_id
FROM
client D
WHERE
T.inn = D.inn; -- unique key
-- ะฒััะฐะฒะปัะตะผ ะพััััััะฒะพะฒะฐะฒัะธะต ะทะฐะฟะธัะธ ะธ ะฟัะพััะฐะฒะปัะตะผ ะธั
ID
WITH ins AS (
INSERT INTO client(
inn
, name
)
SELECT
inn
, name
FROM
client_import
WHERE
client_id IS NULL -- ะตัะปะธ ID ะฝะต ะฟัะพััะฐะฒะธะปัั
RETURNING *
)
UPDATE
client_import T
SET
client_id = D.client_id
FROM
ins D
WHERE
T.inn = D.inn; -- unique key
-- ะฟัะพััะฐะฒะปัะตะผ ID ะบะปะธะตะฝัะพะฒ ั ะทะฐะฟะธัะตะน ััะตัะพะฒ
UPDATE
invoice_import T
SET
client_id = D.client_id
FROM
client_import D
WHERE
T.client_inn = D.inn; -- ะฟัะธะบะปะฐะดะฝะพะน ะบะปัั
เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เดเดฒเตเดฒเดพเด เด
เดเดคเตเดคเตเดฃเตเดเต invoice_import
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดเตเตบเดเดพเดเตเดฑเตเดฑเต เดซเตเตฝเดกเต เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเต client_id
, เดเดเตเดเตพ เดเตปเดตเตเดฏเตเดธเต เดเตเตผเดเตเดเตเด.
เด
เดตเดฒเดเดฌเด: www.habr.com