আমি একটি বেনামি plpgsql কোড ব্লকের মধ্যে লুপগুলি ব্যবহার করে পার্টিশন করার জন্য প্রচুর টেবিলগুলিতে প্রচুর বড় বড় ফাইল আমদানি করছি $do$।
$do$
BEGIN
FOR yyyy in 2012..2016 THEN
EXECUTE $$COPY table$$||yyyy||$$ FROM 'E:\data\file$$||yyyy||$$.csv DELIMITER ',' CSV;$$;
END LOOP;
END;
$do$ LANGUAGE plpgsql
এই পুরো প্রক্রিয়াটির জন্য প্রায় 15 ঘন্টা সময় নিতে হবে এবং আমি আশা করছি যে কোনও পর্যায়ে আমদানি ত্রুটি থাকলে সমস্ত আমদানি ফিরিয়ে নেওয়া হবে না।
আইআইআরসি COMMITসঞ্চিত ফাংশনগুলির মধ্যে কাজ করে না বিসি পুরো ফাংশনটি একক লেনদেন হিসাবে বিবেচিত হয়।
থেকে ডকুমেন্টেশন$do$
কোড ব্লকটিকে এমন চিকিত্সা করা হয় যেন এটি কোনও পরামিতিবিহীন কোনও ফাংশনের মূল অংশ, শূন্য ফিরে আসে। এটি বিশ্লেষণ করা হয় এবং একবারে কার্যকর করা হয়।
আমি ধরে নিচ্ছি এর অর্থ হ'ল পুরোটি $do$একটি লেনদেন, এবং তাই ব্লকের মধ্যে কমিটগুলি কাজ করবে না। আমি কি সঠিক?
BEGINবাCOMMITফাংশন বডিতে। আপনি একটি ব্যতিক্রম পাবেন, কারণ এটি অনুমোদিত নয় (সম্ভব নয়)।