আমি আপনার বাক্যটি বিশেষভাবে সম্বোধন করার জন্য আরেকটি চিন্তার প্রস্তাব দিতে চাই: "সুতরাং আমি ব্যাচ থেকে কোনও একক সারিটি টেবিলে উপস্থিত আছে কিনা তা খতিয়ে দেখতে চাই কারণ আমি জানি যে তারা সমস্ত all োকানো হয়েছিল ।"
আপনি "ব্যাচ" সন্নিবেশ করিয়ে জিনিসগুলিকে দক্ষ করে তুলছেন কিন্তু তারপরে অস্তিত্ব একবারে একটি করে রেকর্ড চেক করেন? এটি আমার কাছে স্বতঃস্ফূর্ত মনে হয়। সুতরাং আপনি যখন বলেন " সন্নিবেশগুলি সর্বদা ব্যাচগুলিতে করা হয় " আমি এটি গ্রহণ করি আপনার অর্থ আপনি একটি সন্নিবেশ বিবৃতি দিয়ে একাধিক রেকর্ড সন্নিবেশ করছেন । আপনার বুঝতে হবে যে পোস্টগ্র্রেসগুলি এসিডি অনুগত। আপনি যদি একটি সন্নিবেশ বিবৃতি সহ একাধিক রেকর্ড (ডেটা ব্যাচ) সন্নিবেশ করিয়ে থাকেন তবে কিছু sertedোকানো হয়েছে কি না তা খতিয়ে দেখার দরকার নেই। বিবৃতিটি হয় পাস হয় অথবা এটি ব্যর্থ হবে। সমস্ত রেকর্ড সন্নিবেশ করা হবে বা কিছুই হবে না।
অন্যদিকে, যদি আপনার সি # কোডটি কেবল একটি "সেট" পৃথক সন্নিবেশ বিবৃতিগুলি করছে, উদাহরণস্বরূপ, একটি লুপে এবং আপনার মনে এটি একটি "ব্যাচ" .. তবে আপনার আসলে এটিকে "" হিসাবে বর্ণনা করা উচিত নয় সন্নিবেশগুলি সর্বদা ব্যাচগুলিতে করা হয় "। আপনি যেটিকে "ব্যাচ" বলছেন তার যে অংশটি আপনি প্রত্যাশা করেছেন তা বাস্তবে beোকানো যাবে না এবং তাই একটি চেকের প্রয়োজনীয়তা অনুভব করে, দৃ strongly়ভাবে প্রস্তাব দেয় এটিই এই ক্ষেত্রে, যার ক্ষেত্রে আপনার আরও মৌলিক সমস্যা রয়েছে। একটি sertোকানো সহ একাধিক রেকর্ড সন্নিবেশ করানোর জন্য আপনার দৃষ্টান্ত পরিবর্তন করতে হবে এবং স্বতন্ত্র রেকর্ডগুলি এটি তৈরি করেছে কিনা তা পরীক্ষা করতে হবে।
এই উদাহরণ বিবেচনা করুন:
CREATE TABLE temp_test (
id SERIAL PRIMARY KEY,
sometext TEXT,
userid INT,
somethingtomakeitfail INT unique
)
-- insert a batch of 3 rows
;;
INSERT INTO temp_test (sometext, userid, somethingtomakeitfail) VALUES
('foo', 1, 1),
('bar', 2, 2),
('baz', 3, 3)
;;
-- inspect the data of what we inserted
SELECT * FROM temp_test
;;
-- this entire statement will fail .. no need to check which one made it
INSERT INTO temp_test (sometext, userid, somethingtomakeitfail) VALUES
('foo', 2, 4),
('bar', 2, 5),
('baz', 3, 3) -- <<--(deliberately simulate a failure)
;;
-- check it ... everything is the same from the last successful insert ..
-- no need to check which records from the 2nd insert may have made it in
SELECT * FROM temp_test
এটি আসলে যে কোনও এসআইডি কমপ্লায়েন্ট ডিবির জন্য দৃষ্টান্ত .. কেবল পোস্টগ্র্যাস্কল নয়। অন্য কথায় আপনি যদি আপনার "ব্যাচ" ধারণাটি স্থির করেন এবং প্রথম স্থানে সারি চেক করে কোনও সারি করা থেকে বিরত থাকেন তবে আপনি আরও ভাল।