পোস্টগ্রিসে একটি মান বৃদ্ধি করা


108

পোস্টগ্রাজে আমি একটু নতুন। আমি পোস্টগ্রিস টেবিলের একটি ক্ষেত্রে একটি মান (যা একটি পূর্ণসংখ্যা) নিতে এবং একে একে বাড়িয়ে দিতে চাই। উদাহরণস্বরূপ, যদি টেবিলের 'মোটে' 2 টি কলাম, 'নাম' এবং 'মোট' থাকে এবং বিলটির মোট 203 থাকে, তবে বিলের মোট 204 এ স্থানান্তর করতে আমি যে এসকিউএল বিবৃতি ব্যবহার করব?

উত্তর:


209
UPDATE totals 
   SET total = total + 1
WHERE name = 'bill';

আপনি যদি নিশ্চিত করতে চান যে বর্তমান মানটি সত্যই 203 (এবং ঘটনাক্রমে এটি আবার বাড়বে না) আপনি অন্য শর্তও যুক্ত করতে পারেন:

UPDATE totals 
   SET total = total + 1
WHERE name = 'bill'
  AND total = 203;

1
আমি অ-পূর্ণসংখ্যক ডেটাটাইপ বাড়ানোর চেষ্টা করছিলাম এবং পাচ্ছি : ERROR: operator does not exist: character varying + integer LINE 2: SET total = total + 1 মানটি এরূপ হিসাবে পূর্ণসংখ্যার হিসাবে castালাই দিয়ে সমাধান করা হয়েছেSET total = total::int + 1
স্টিউ-অউ

33
@ স্টিউ-অউ: ভার্চার কলামগুলিতে সংখ্যা সঞ্চয় করবেন না । যা আপনাকে দীর্ঘকালীন সমস্যায় ফেলবে। একটি পূর্ণসংখ্যা ব্যবহার করুন (বা বিগিন্ট বা যা কিছু উপযুক্ত) তবে কোনও অক্ষর ডেটাটাইপ ব্যবহার করবেন না।
a_horse_with_no_name

4
এই বিবৃতিটি কি পারমাণবিক বা আমার লেখার জন্য প্রথমে টেবিলটি লক করা উচিত হতাশাব্যঞ্জক? (আমার আশঙ্কা হ'ল মোট
বরাদ্দকরণ

9
একটি বিবৃতি একটি সম্পর্কিত ডেটাবেজে সর্বদা পারমাণবিক হয়। তবে আপডেটটি চালানো আপনার লেনদেনের প্রতিশ্রুতি না দেওয়া পর্যন্ত অন্যকে পুরানো মানগুলি পড়তে বাধা দেয় না
a_horse_with_no_name

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.