MySQL টেবিলে ডেটা বিদ্যমান না থাকলেই এই পোস্টে একটি নতুন সারি ঢোকানোর বিষয়ে আলোচনা করা হবে। এই পোস্ট দিয়ে শুরু করার আগে, নিশ্চিত করুন যে আপনি আপনার MySQL লোকাল সার্ভারে লগ ইন করেছেন এবং আপনি যেখানে কাজ করতে চান সেখানে একটি ডাটাবেস বেছে নিয়েছেন।
'INSERT IGNORE' স্টেটমেন্ট ব্যবহার করে শুধুমাত্র ডেটা না থাকলেই একটি নতুন সারি ঢোকান
আচ্ছা, শিরোনামের প্রশ্নের উত্তরটি বেশ সহজ এবং সোজা। শুধু ব্যবহার করুন ' ঢোকান 'এর সাথে কীওয়ার্ড' উপেক্ষা করুন ' কীওয়ার্ড। এটি নিশ্চিত করবে যে নতুন ডেটা বা সন্নিবেশ ক্যোয়ারী শুধুমাত্র তখনই কার্যকর করা হবে যখন MySQL-এ ডেটার কোনো পূর্ববর্তী এন্ট্রি পাওয়া যাবে না। এটির একটি সংক্ষিপ্ত বিবরণ পেতে, নিম্নলিখিত সিনট্যাক্সটি দেখুন:
ঢোকান উপেক্ষা করুন INTO [ টেবিল - নাম ] ( [ কলাম 1 - নাম ] , [ কলাম 2 - নাম ] , [ কলাম 3 - নাম ] ) মূল্য ( [ মান1 ] , [ মান2 ] , [ মান3 ] ) ;
আসুন একটি উদাহরণ দেখি যদি ব্যবহারকারী একটি সারি মান লিখতে চায় ' 1 ', ' জন ' এবং ' হরিণী ' মধ্যে ' ক্রেতা 'কলামগুলির জন্য টেবিল' আইডি ,' ' নামের প্রথম অংশ ' এবং ' নামের শেষাংশ 'যথাক্রমে। এই মানগুলি সন্নিবেশ করতে এই ক্যোয়ারীটি চালান যদি থাকে যদি এই মানগুলি সম্বলিত কোনও সারি ইতিমধ্যেই বিদ্যমান না থাকে:
নির্বাচন করুন * থেকে ক্রেতা;
ঢোকান উপেক্ষা করুন INTO ক্রেতা ( আইডি , নামের প্রথম অংশ , নামের শেষাংশ ) মূল্য ( 1 , 'জন' , 'হরিণী' ) ;
আউটপুটে ক্যোয়ারী চালানোর আগে এবং পরে টেবিলের ডেটা প্রদর্শন করে দুটি টেবিল রয়েছে। আপনি লক্ষ্য করতে পারেন যে টেবিলে কিছুই পরিবর্তন হচ্ছে না কারণ সারিটি ইতিমধ্যেই বিদ্যমান তাই MySQL সফলভাবে ত্রুটি প্রদর্শন না করে সন্নিবেশ প্রক্রিয়াটিকে উপেক্ষা করেছে:
একটি নতুন সারি সন্নিবেশ করান শুধুমাত্র যদি 'কোথায় নেই' ধারাটি ব্যবহার করে ডেটা বিদ্যমান না থাকে
মাইএসকিউএল-এ, ' কোথায় অস্তিত্ব নেই ধারা সারি সন্নিবেশ বাধা দেয় যদি সেগুলি আগে থেকেই টেবিলে বিদ্যমান থাকে যখন এটি ব্যবহার করা হয় দ্রন একটি শর্ত সংজ্ঞায়িত করতে একটি subquery সহ বিবৃতি। যখন এই ধারাটি সাবকোয়েরির সাথে ব্যবহার করা হয় “ ( [টেবিল-নাম] [কলাম-নাম] = [এক্সপ্রেশন] থেকে * নির্বাচন করুন; ” টেবিলে একটি সারি আছে কিনা তা পরীক্ষা করে যা শর্ত পূরণ করে। একটি সারি বিদ্যমান থাকলে, ' যেখানে নেই ' ধারা একটি মিথ্যা মান প্রদান করবে, এবং ' নির্বাচন করুন ” বিবৃতি কোনো সারি প্রদান করবে না। ফলস্বরূপ, সারিটি টেবিলে ঢোকানো হবে না। সিনট্যাক্স নীচে দেওয়া হয়:
ঢোকান INTO [ টেবিল - নাম ] ( [ কলাম 1 - নাম ] , [ কলাম 2 - নাম ] , [ কলাম 3 - নাম ] )নির্বাচন করুন [ মান1 ] , [ মান2 ] , [ মান3 ]
কোথায় না বিদ্যমান ( নির্বাচন করুন * থেকে [ টেবিল - নাম ] [ কলাম - নাম ] = [ অভিব্যক্তি ] ) ;
আসুন একটি উদাহরণ দেখি যদি ব্যবহারকারী কর্মচারী টেবিলে একটি সারি সন্নিবেশ করতে চান যার মান রয়েছে ' 1 ', ' মার্কিন ' এবং ' হেনরিওট 'কলামে' আইডি ', ' কোমপানির নাম ' এবং ' যোগাযোগের নাম 'যথাক্রমে। কিন্তু শুধুমাত্র যদি একটি আইডি সহ একটি সারি “ 1 'সারণীতে পাওয়া যায় না বা এটি বিদ্যমান নয়। সেই বিশেষ ক্ষেত্রে, প্রশ্নটি হয়ে যাবে:
নির্বাচন করুন * থেকে কর্মচারী
ঢোকান INTO কর্মচারী ( আইডি , কোমপানির নাম , যোগাযোগের নাম )
নির্বাচন করুন 1 , 'মার্কিন' , 'হেনরিয়ট'
কোথায় না বিদ্যমান ( নির্বাচন করুন * থেকে কর্মচারী কোথায় আইডি = 1 ) ;
আউটপুট একটি নতুন সারি প্রদর্শন করে যা 'এর সাথে সারি হিসাবে ঢোকানো হয় না আইডি ' সমান ' 1 ইতিমধ্যেই বিদ্যমান।
'অনডুপ্লিকেট কী আপডেট' ধারাটি ব্যবহার করে শুধুমাত্র যদি ডেটা বিদ্যমান না থাকে তবেই একটি নতুন সারি সন্নিবেশ করান
আচ্ছা, আরেকটি উপায় হল ' ডুপ্লিকেট কী আপডেটে MySQL এ ধারা। যেহেতু এই ধারাটি 'ইনসার্ট ইনটো' ক্যোয়ারির সাথে ব্যবহার করা হবে যা একটি 'যদি-অন্যথা' এক্সিকিউশন গঠন করে। সুতরাং এর মানে হল যে টেবিলের ভিতরের ডেটা শুধুমাত্র আপডেট করা হবে যদি এটি অনন্য হয়। অন্যথায়, কোন পরিবর্তন ঘটবে না। এর জন্য সাধারণ সিনট্যাক্স নিম্নরূপ:
ঢোকান INTO [ টেবিল - নাম ] ( [ কলাম 1 - নাম ] , [ কলাম 2 - নাম ] , [ কলাম 3 - নাম ] ) মূল্য ( [ মান1 ] , [ মান2 ] , [ মান3 ] )চালু নকল চাবি হালনাগাদ [ কলাম 1 - নাম ] = [ কলাম 1 - নাম ] ;
আসুন একটি উদাহরণ দেখি, 'এ মান সন্নিবেশ করান 2 ', ' প্যাস্কেল ', ' নিক্সন ', ' লন্ডন ', ' যুক্তরাজ্য ' এবং “(171) 555-7788 ' টেবিলের ' ক্রেতা 'কলামগুলির জন্য' আইডি ', ' নামের প্রথম অংশ ', ' নামের শেষাংশ ', ' শহর ', ' দেশ ' এবং ' ফোন 'যথাক্রমে। যদি সারিটি ইতিমধ্যে বিদ্যমান না থাকে তবে এটি সন্নিবেশ করা হবে। অন্যথায়, এটি মানগুলি আপডেট করবে যেখানে ' আইডি=আইডি 'শর্ত পূরণ. এই ক্যোয়ারী চালান:
নির্বাচন করুন * থেকে ক্রেতা ;ঢোকান INTO ক্রেতা ( আইডি , নামের প্রথম অংশ , নামের শেষাংশ , শহর , দেশ , ফোন )
মূল্য ( 2 , 'প্যাস্কেল' , 'নিক্সন' , 'লন্ডন' , 'যুক্তরাজ্য' , '(171) 555-7788' )
চালু নকল চাবি হালনাগাদ আইডি = আইডি;
এই ক্যোয়ারী চালানোর আগে টেবিল, আপনি দেখতে পারেন ' আইডি ' সমান ' 2 ' এটির অস্তিত্ব নেই:
ক্যোয়ারী চালানোর পরে, এই ক্যোয়ারীটি টেবিলে নতুন সারি ঢোকাবে:
আপনি সফলভাবে একটি নতুন সারি সন্নিবেশ করেছেন, কারণ অনুসন্ধান চালানোর আগে ডেটা বিদ্যমান নেই৷
উপসংহার
MySQL-এ, শুধুমাত্র একটি নতুন সারি সন্নিবেশ করান যদি ' ব্যবহার করে ইতিমধ্যে ডেটা বিদ্যমান না থাকে উপেক্ষা ঢোকান 'বিবৃতি বা' যেখানে নেই 'এ ধারা' দ্রন 'বিবৃতি। এটি করার আরেকটি উপায় হল ' ডুপ্লিকেট কী আপডেটে 'এ ধারা' দ্রন সারিটি ইতিমধ্যে বিদ্যমান থাকলে আপডেট করার বিবৃতি। অন্যথায়, একটি নতুন সারি যোগ করুন। পোস্টটিতে আলোচনা করা হয়েছে কিভাবে শুধুমাত্র তথ্য না থাকলেই একটি নতুন সারি সন্নিবেশ করা যায়।