কিভাবে PostgreSQL অটো-ইনক্রিমেন্ট প্রাথমিক কী সেটআপ করবেন?

How Setup Postgresql Auto Increment Primary Key



এমন কিছু ঘটনা হতে পারে যেখানে আপনি PostgreSQL- এ টেবিল তৈরি এবং রক্ষণাবেক্ষণ করেন যখন আপনি অনুরোধে তৈরি হওয়া একটি কলামের জন্য বিশেষ মান চান। এটি আইডি কলামগুলির জন্য বিশেষভাবে সত্য হবে যা টেবিলের প্রাথমিক কী হিসাবে কাজ করে। ভাগ্যক্রমে, সিরিয়াল সিউডো-টাইপ একটি অটো-ইনক্রিমেন্টিং পূর্ণসংখ্যা সিরিজকে সুবিধাজনক করে তোলে। একটি সিরিজ হল PostgreSQL- এর এক ধরনের ডাটাবেস বস্তু যা সূচী বা পূর্ণসংখ্যার একটি সিরিজ তৈরি করে। একটি PostgreSQL ক্রম স্বতন্ত্র পূর্ণসংখ্যার একটি স্ট্রিং উৎপন্ন করে, এটি একটি নতুন টেবিল তৈরির সময় এটিকে প্রাথমিক কী হিসেবে ব্যবহারের উপযোগী করে তোলে। পোস্টগ্রেএসকিউএল-এ কী অটো-ইনক্রিমেন্ট মেনাস আমরা দেখাব এবং আমরা এই গাইড জুড়ে সিরিয়াল সিউডো-টাইপ ব্যবহার করব।

বাক্য গঠন:

অটো-ইনক্রিমেন্ট প্রাথমিক কী তৈরির জন্য সাধারণ বাক্য গঠন নিম্নরূপ:







>>টেবিল টেবিলের নাম তৈরি করুন( আইডিসিরিয়াল);

আসুন এখন আরো বিস্তারিতভাবে টেবিল তৈরি ঘোষণার দিকে নজর দেই:



  • PostgreSQL প্রথমে একটি সিরিজ সত্তা তৈরি করে। এটি সিরিজের পরবর্তী মান তৈরি করে এবং এটিকে ক্ষেত্রের ডিফল্ট রেফারেন্স মান হিসাবে সেট করে।
  • PostgreSQL একটি আইডি ক্ষেত্রে নিখুঁত নিষেধাজ্ঞা প্রয়োগ করে না কারণ একটি সিরিজ সংখ্যাসূচক মান তৈরি করে।
  • আইডি ক্ষেত্রটি ধারাবাহিকের ধারক হিসাবে বরাদ্দ করা হবে। যদি আইডি ক্ষেত্র বা টেবিল নিজেই বাদ দেওয়া হয়, ক্রমটি বাতিল করা হবে।

অটো-ইনক্রিমেন্টের ধারণা পেতে, অনুগ্রহ করে নিশ্চিত করুন যে পোস্টগ্রেএসকিউএল আপনার সিস্টেমে মাউন্ট করা এবং কনফিগার করা আছে এই গাইডের দৃষ্টান্তগুলি চালিয়ে যাওয়ার আগে। ডেস্কটপ থেকে PostgreSQL কমান্ড-লাইন শেল খুলুন। আপনার সার্ভারের নাম যোগ করুন যার উপর আপনি কাজ করতে চান, অন্যথায় এটি ডিফল্টে ছেড়ে দিন। আপনার সার্ভারে থাকা ডাটাবেসের নাম লিখুন যার উপর আপনি কাজ করতে চান। যদি আপনি এটি পরিবর্তন করতে না চান তবে এটি ডিফল্ট হিসাবে ছেড়ে দিন। আমরা পরীক্ষার ডাটাবেস ব্যবহার করবো, এজন্যই আমরা এটি যুক্ত করেছি। আপনি ডিফল্ট পোর্ট 5432 এও কাজ করতে পারেন, তবে আপনি এটি পরিবর্তন করতে পারেন। শেষ পর্যন্ত, আপনাকে আপনার বেছে নেওয়া ডাটাবেসের জন্য ব্যবহারকারীর নাম সরবরাহ করতে হবে। যদি আপনি এটি পরিবর্তন করতে না চান তবে এটি ডিফল্টে ছেড়ে দিন। নির্বাচিত ব্যবহারকারীর নামটির জন্য আপনার পাসওয়ার্ড টাইপ করুন এবং কমান্ড শেল ব্যবহার শুরু করতে কীবোর্ড থেকে এন্টার চাপুন।







ডেটা টাইপ হিসাবে সিরিয়াল কীওয়ার্ড ব্যবহার করা:

যখন আমরা একটি টেবিল তৈরি করি, আমরা সাধারণত প্রাথমিক কলামের ক্ষেত্রে সিরিয়াল কীওয়ার্ড যুক্ত করি না। এর অর্থ হল INSERT স্টেটমেন্ট ব্যবহার করার সময় আমাদের প্রাথমিক কী কলামে মান যোগ করতে হবে। কিন্তু যখন আমরা টেবিল তৈরির সময় আমাদের ক্যোয়ারীতে সিরিয়াল কীওয়ার্ড ব্যবহার করি, তখন মানগুলি সন্নিবেশ করার সময় আমাদের প্রাথমিক কলাম মান যোগ করার প্রয়োজন হবে না। এক নজরে দেখে নেওয়া যাক এটি।

উদাহরণ 01:

দুটি কলাম আইডি এবং নাম দিয়ে একটি টেবিল টেস্ট তৈরি করুন। কলাম আইডি প্রাথমিক কী কলাম হিসাবে সংজ্ঞায়িত করা হয়েছে কারণ এর ডেটাটাইপ সিরিয়াল। অন্যদিকে, কলামের নামটি টেক্সট নট ডাটা টাইপ হিসাবে সংজ্ঞায়িত করা হয়েছে। একটি টেবিল তৈরির জন্য নিচের কমান্ডটি ব্যবহার করে দেখুন এবং নিচের ছবিতে দেখানো টেবিলটি দক্ষতার সাথে তৈরি হবে।



>>টেবিল টেস্ট তৈরি করুন( আইডিসিরিয়াল প্রাইমারি কী, টেক্সট নট নল);

আসুন নতুন তৈরি টেবিল TEST এর কলামের নামটিতে কিছু মান সন্নিবেশ করাই। আমরা কলাম আইডিতে কোন মান যোগ করব না। আপনি দেখতে পাচ্ছেন যে নীচে বর্ণিত হিসাবে INSERT কমান্ড ব্যবহার করে মানগুলি সফলভাবে সন্নিবেশ করা হয়েছে।

>>পরীক্ষায় প্রবেশ করুন(নাম)মান('আকসা'),('রিমশা'),('খান');

টেবিলের রেকর্ড পরীক্ষা করার সময় এসেছে। কমান্ড শেলের মধ্যে নিচের SELECT নির্দেশনা চেষ্টা করুন।

>>নির্বাচন করুন*পরীক্ষা থেকে;

নীচের আউটপুট থেকে, আপনি লক্ষ্য করতে পারেন যে কলাম আইডি স্বয়ংক্রিয়ভাবে এতে কিছু মান পেয়েছে যদিও আমরা কলাম আইডির জন্য নির্দিষ্ট করা ডেটাটাইপ সিরিয়ালের কারণে INSERT কমান্ড থেকে কোনো মান যোগ করিনি। এইভাবে ডেটাটাইপ সিরিয়াল তার নিজের উপর কাজ করে।

উদাহরণ 02:

সিরিয়াল ডেটা টাইপ কলামের মান পরীক্ষা করার আরেকটি উপায় হল INSERT কমান্ডে রিটার্নিং কীওয়ার্ড ব্যবহার করা। নীচের ঘোষণাটি টেস্ট টেবিলে একটি নতুন লাইন তৈরি করে এবং আইডি ক্ষেত্রের মান প্রদান করে:

>>পরীক্ষায় প্রবেশ করুন(নাম)মান('হাসাম')প্রত্যাবর্তনআইডি;

SELECT ক্যোয়ারী ব্যবহার করে টেবিল টেস্টের রেকর্ড চেক করে আমরা ছবিতে প্রদর্শিত নীচের আউটপুট পেয়েছি। পঞ্চম রেকর্ড দক্ষতার সাথে টেবিলে যোগ করা হয়েছে।

>>নির্বাচন করুন*পরীক্ষা থেকে;

উদাহরণ 03:

উপরের সন্নিবেশ ক্যোয়ারীর বিকল্প সংস্করণ DEFAULT কীওয়ার্ড ব্যবহার করছে। আমরা INSERT কমান্ডে কলাম আইডি নাম ব্যবহার করব, এবং VALUES বিভাগে, আমরা এটির মান হিসাবে ডিফল্ট কীওয়ার্ড দেব। নিচের ক্যোয়ারী কার্যকর করার পরে একই কাজ করবে।

>>পরীক্ষায় প্রবেশ করুন(আইডি, নাম)মান(ডিফল্ট, 'রেস');

SELECT ক্যোয়ারী ব্যবহার করে টেবিলটি আবার পরীক্ষা করা যাক:

>>নির্বাচন করুন*পরীক্ষা থেকে;

আপনি নীচের আউটপুট থেকে দেখতে পারেন, নতুন মান যোগ করা হয়েছে যখন কলাম আইডি ডিফল্টভাবে বৃদ্ধি করা হয়েছে।

উদাহরণ 04:

সিরিয়াল কলাম ক্ষেত্রের ক্রম সংখ্যা PostgreSQL এর একটি টেবিলে পাওয়া যাবে। এটি সম্পন্ন করার জন্য pg_get_serial_sequence () পদ্ধতি ব্যবহার করা হয়। আমাদের pg_get_serial_sequence () পদ্ধতির সাথে currval () ফাংশন ব্যবহার করতে হবে। এই প্রশ্নের মধ্যে, আমরা pg_get_serial_sequence () ফাংশনের প্যারামিটারে টেবিলের নাম এবং এর সিরিয়াল কলামের নাম প্রদান করব। আপনি দেখতে পাচ্ছেন, আমরা টেবিল টেস্ট এবং কলাম আইডি নির্দিষ্ট করেছি। এই পদ্ধতিটি নীচের প্রশ্নের উদাহরণে ব্যবহৃত হয়:

>>বাঁক নির্বাচন করুন(pg_get_serial_sequence('পরীক্ষা', 'আইডি'));

এটা লক্ষণীয় যে আমাদের কার্ভাল () ফাংশন আমাদের ক্রমটির সাম্প্রতিক মান বের করতে সাহায্য করে, যা ৫। নিচের ছবিটি পারফরম্যান্স কেমন হতে পারে তার একটি দৃষ্টান্ত।

উপসংহার:

এই গাইড টিউটোরিয়ালে, আমরা দেখিয়েছি কিভাবে PostgreSQL এ অটো-ইনক্রিমেন্টের জন্য সিরিয়াল সিউডো-টাইপ ব্যবহার করতে হয়। পোস্টগ্রেএসকিউএল-এ একটি সিরিজ ব্যবহার করে, সংখ্যার একটি অটো-ইনক্রিমেন্টিং সেট তৈরি করা সহজ। আশা করি, আপনি রেফারেন্স হিসাবে আমাদের চিত্রগুলি ব্যবহার করে টেবিলের বর্ণনাগুলিতে সিরিয়াল ক্ষেত্রটি প্রয়োগ করতে সক্ষম হবেন।