আপনি lastval()
ফাংশনটি ব্যবহার করতে পারেন :
যে nextval
কোনও সিকোয়েন্সের জন্য সর্বাধিক পাওয়া রিটার্ন মান
সুতরাং এর মতো কিছু:
INSERT INTO Table1 (name) VALUES ('a_title');
INSERT INTO Table2 (val) VALUES (lastval());
এটি যতক্ষণ না nextval()
আপনার INSERTs এর মধ্যে অন্য কোনও সিক্যুয়েন্সে (বর্তমান সেশনে) কল না করে ততক্ষণ তা কাজ করবে ।
হিসাবে ডেনিস নিচে উল্লেখ করা এবং আমি সম্পর্কে উপরে সতর্ক ব্যবহার lastval()
যদি অন্য ক্রম ব্যবহার অ্যাক্সেস করা হয় কষ্ট আপনি পেতে পারেন nextval()
আপনার টিপে মধ্যে। যদি Table1
ম্যানুয়ালি nextval()
কোনও সিকোয়েন্সে ডেকে আনা হয় বা যদি সম্ভবত একটি প্রাথমিক SERIAL
বাBIGSERIAL
কী দিয়ে টেবিলে একটি INSERT করে থাকে তবে এটি ঘটতে পারে । আপনি যদি সত্যই বেহাল হয়ে উঠতে চান (একটি ভাল জিনিস, তারা আপনাকে সত্যিকার অর্থেই আপনাকে পেয়ে currval()
যাবেন ), তবে আপনি ব্যবহার করতে পারেন তবে আপনাকে প্রাসঙ্গিক ক্রমের নামটি জানতে হবে:
INSERT INTO Table1 (name) VALUES ('a_title');
INSERT INTO Table2 (val) VALUES (currval('Table1_id_seq'::regclass));
স্বয়ংক্রিয়ভাবে উত্পাদিত ক্রমটি সাধারণত নামকরণ করা হয় t_c_seq
যেখানে t
টেবিলের নাম এবং c
কলামের নাম তবে আপনি সর্বদা প্রবেশ করে psql
এবং এটি বলে খুঁজে পেতে পারেন :
=> \d table_name;
এবং তারপরে প্রশ্নের মধ্যে থাকা কলামটির জন্য ডিফল্ট মানটি দেখুন:
id | integer | not null default nextval('people_id_seq'::regclass)
এফওয়াইআই: lastval()
কমবেশি, মাইএসকিউএল-র পোস্টগ্রিএসকিউএল সংস্করণ LAST_INSERT_ID
। আমি কেবল এটি উল্লেখ করেছি কারণ পোস্টগ্র্রেএসকিউএল এর চেয়ে অনেক লোক মাইএসকিউএল এর সাথে বেশি পরিচিত তাই পরিচিত কোনও lastval()
জিনিসের সাথে লিঙ্ক করা জিনিসগুলি স্পষ্ট করতে পারে।