PostgreSQLAdvanced
INSERT … ON CONFLICT — inset বা update
একই key-এ লোমহর্ষক conflict — DO UPDATE / DO NOTHING।
4টি অংশবাংলা ভাষায়
upsert: email থাকলে updatesql
sql
INSERT INTO users (email, name)
VALUES ('a@b.com', 'Anamul')
ON CONFLICT (email)
DO UPDATE SET name = EXCLUDED.name;-- duplicates নিজে এড়াও
INSERT INTO coupons (code, discount)
VALUES ('SAVE10', 10)
ON CONFLICT DO NOTHING;ON CONFLICT (col)— UNIQUE/EXCLUSION constraint-এর নামেই conflictEXCLUDED— প্রস্তাবিত row-এর value referenceDO NOTHING— ভুল ignoring-এর জন্য
কনফ্লিক্ট target
ON CONFLICT (email)-এর আগে সেই constraint অবশ্যই থাকতে হবে — না হলে runtime error। UNIQUE index-এর ক্ষেত্রে key সঠিক রাখুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।