মাইএসকিউএল সন্নিবেশ করুন ডুপ্লিকেট কী উপেক্ষা করুন

Mysql Insert Ignore Duplicate Key



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

বাক্য গঠন:

এখানে INSERT IGNORE কোয়েরির জন্য সিনট্যাক্স।







>>টেবিল_নেমে ইগনোর ইনসার্ট করুন(col1, col2, col3)মান(মান_ তালিকা),(মান_ তালিকা),(মান_ তালিকা);

ওয়ার্কবেঞ্চের মাধ্যমে ইগনোর ইনসার্ট করুন:

আপনার সিস্টেম থেকে আপনার মাইএসকিউএল ওয়ার্কবেঞ্চ 8.0 খুলুন এবং এটি ডাটাবেসের উদাহরণের সাথে সংযুক্ত করুন।





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





>>টেবিল কর্মচারী তৈরি করুন(আইডি ইন্ট প্রাথমিক কী নট, নাম varchar(পঞ্চাশ)শূন্য নয়, বয়স ভার্চার(পঞ্চাশ), বেতন varchar(পঞ্চাশ), অনন্য(আইডি));

তৈরির পরে, আপনি ডাটাবেস ডেটার নীচে টেবিলের বিকল্পের অধীনে তালিকার মধ্যে কর্মচারী খুঁজে পেতে পারেন।



গ্রিড ভিউতে, আপনি কোনও প্রশ্ন না লিখে রেকর্ড প্রবেশ করতে পারেন। সুতরাং, টেবিল কর্মচারীর গ্রিড ভিউ খুলুন এবং নীচে দেখানো হিসাবে এতে কিছু রেকর্ড যুক্ত করুন। আমরা কোনও অনুলিপি ছাড়াই সমস্ত অনন্য রেকর্ড প্রবেশ করেছি। পরিবর্তনগুলি প্রয়োগ করতে 'প্রয়োগ করুন' বোতামটি টিপুন।

আমরা উপরে যে রেকর্ডগুলি দিয়েছি সেগুলি সম্পর্কিত প্রাসঙ্গিক প্রশ্নের সাথে একটি নতুন উইন্ডো খোলা হবে। এই স্ক্রিনকে রিভিউ স্ক্রিন বলা যেতে পারে। আপনি যদি কিছু পরিবর্তন করতে চান, আপনি এখানে করতে পারেন। অন্যথায়, প্রশ্নগুলি কার্যকর করতে প্রয়োগ বোতামটি টিপুন।

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

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

ক্যোয়ারী সঠিকভাবে কাজ করবে না, এবং ছবিতে প্রদর্শিত হিসাবে INSERT কমান্ডের সদৃশ মানগুলির কারণে এটি একটি ত্রুটি তৈরি করবে।

এখন উপরের প্রশ্নটি INSERT IGNORE ধারা দিয়ে চেষ্টা করুন এবং উপস্থাপিত হিসাবে এটি কার্যকর করুন।

আপনি দেখতে পারেন যে এটি আউটপুট এলাকায় একটি ত্রুটি তৈরি করে না, তবে এটি একটি সতর্কতা দেয় যে কমান্ডটিতে ডুপ্লিকেট মান রয়েছে।

টেবিল কর্মচারীর গ্রিড ভিউ রিফ্রেশ করুন। INSERT IGNORE ক্যোয়ারী অর্ধেক কাজ করেছে। এটি টেবিলের মধ্যে মানগুলির প্রথম তালিকা ertedুকিয়েছে, কিন্তু বার বার মান 13 এর কারণে মানগুলির দ্বিতীয় তালিকা উপেক্ষা করা হয়েছে।

কমান্ড-লাইন শেলের মাধ্যমে ইগনোর ইনসার্ট করুন:

এই ধারণাটি বুঝতে, আসুন আপনার সিস্টেমে মাইএসকিউএল কমান্ড-লাইন ক্লায়েন্ট শেলটি খুলি। জিজ্ঞাসা করার পরে, এটিতে কাজ শুরু করতে আপনার মাইএসকিউএল পাসওয়ার্ড টাইপ করুন।

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

>>টেবিল ডেটা তৈরি করুন(মধ্য INT প্রাথমিক কী অনন্য নয়, নাম VARCHAR(চার পাঁচ), শহর VARCHAR(চার পাঁচ));

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

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

অতএব, টেবিল চেক করার সময়, আমরা দেখতে পারি যে টেবিলে প্রথম INSERT ক্যোয়ারী দ্বারা শুধুমাত্র 1 টি রেকর্ড যোগ করা হয়েছে।

>>নির্বাচন করুন*Data.minister থেকে;

বিপরীতভাবে, যদি আপনি INSERT IGNORE ধারাটি ব্যবহার করেন, ভুল ডেটা সারি যা ত্রুটিকে ট্রিগার করে তা উপেক্ষা করা হবে এবং কেবলমাত্র সঠিকগুলি প্রবেশ করবে। নীচের কমান্ডে, আমরা টেবিলে বারবার মান যোগ করা এবং ত্রুটি উপেক্ষা করার জন্য INSERT IGNORE কমান্ড ব্যবহার করছি। আপনি দেখতে পাচ্ছেন, মানগুলির প্রথম তালিকায় আগের প্রশ্নের মতই একটি সদৃশ মান 11 রয়েছে। যদিও মানগুলির দ্বিতীয় তালিকাটি অনন্য, এটি টেবিলে recordোকানো ১ টি রেকর্ড দেখাবে, যা মানগুলির দ্বিতীয় তালিকা। মাইএসকিউএল এছাড়াও ইঙ্গিত দেয় যে শুধুমাত্র 1 টি রেকর্ড ertedোকানো হয়েছে, এবং বার্তায় 1 টি সতর্কতা তৈরি করা হয়েছে। আপনি তখন ধরে নিতে পারেন যে আমরা যদি INSERT IGNORE ধারাটি ব্যবহার করি, মাইএসকিউএল একটি সতর্কতা প্রদান করে।

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

>>নির্বাচন করুন*Data.minister থেকে;

উপসংহার:

আমরা মাইএসকিউএল ওয়ার্কবেঞ্চ এবং মাইএসকিউএল কমান্ড-লাইন ক্লায়েন্ট শেলের মাধ্যমে ডুপ্লিকেট মানগুলিতে ইনসার্ট ইগনোরের সমস্ত প্রয়োজনীয় উদাহরণগুলি করেছি।