INSERT বিবৃতিটি MySQL এবং অন্য কোনো ডাটাবেসের সবচেয়ে মৌলিক এবং দরকারী বিবৃতিগুলির মধ্যে একটি।
এটি আমাদের টেবিলের নাম উল্লেখ করে এবং টেবিল কলামের বিন্যাস প্রদান করে একটি বিদ্যমান টেবিলে রেকর্ড সন্নিবেশ করার অনুমতি দেয়। তারপরে আমরা সেই মানগুলি সরবরাহ করি যা আমরা টেবিলে সন্নিবেশ করতে চাই।
যাইহোক, যখন এটি INSERT বিবৃতিতে আসে, আমাদের নিশ্চিত করতে হবে যে প্রতিটি নির্দিষ্ট সারিতে একটি ত্রুটি নেই। অন্যথায়, সম্পূর্ণ ধারা ব্যর্থ হবে। একাধিক সন্নিবেশ রেকর্ডের সাথে কাজ করার সময় এটি অবিশ্বাস্যভাবে অদক্ষ হতে পারে।
একটি ফলব্যাক থাকা ভাল যা MySQL-কে বেছে বেছে বৈধ মান ধারণ করে এমন সারিগুলি সন্নিবেশ করতে দেয় এবং যেগুলি প্রয়োজনীয়তার সাথে খাপ খায় না সেগুলিকে উপেক্ষা করে৷ এখানেই INSERT IGNORE ধারাটি কার্যকর হয়।
এই টিউটোরিয়ালে, আমরা শিখব কিভাবে INSERT IGNORE ক্লজ ব্যবহার করতে হয় যাতে MySQL-কে সম্পূর্ণ ইনসার্ট ব্লকটি বন্ধ করার পরিবর্তে একটি অবৈধ ডেটা রয়েছে এমন কোনো সারিকে উপেক্ষা করতে দেয়।
বাক্য গঠন:
নিম্নলিখিতটি MySQL ডাটাবেসে INSERT IGNORE স্টেটমেন্টের মৌলিক সিনট্যাক্স দেখায়:
টেবিলের মধ্যে উপেক্ষা ঢোকান ( কলাম_তালিকা )মূল্য ( মান_তালিকা ) ,
( মান_তালিকা ) ,
INSERT IGNORE ক্লজটি MySQL ডাটাবেসের জন্য নির্দিষ্ট এবং অন্যান্য ডাটাবেস সিস্টেমে সমর্থিত নয় কারণ এটি SQL স্ট্যান্ডার্ডের অংশ নয়।
যাইহোক, অন্যান্য ডাটাবেস ইঞ্জিনগুলি অনুরূপ প্রয়োগ প্রদান করে যেমন ধারাগুলি ব্যবহার করে যেমন INSERT ON DUPLICATE KY UPDATE, INSERT INTO ON CONFLICT DO THING (PostgreSQL) এবং আরও অনেক কিছু।
MySQL INSERT ignore Clause
আসুন আমরা একটি উদাহরণ অন্বেষণ করি যা প্রদর্শন করে কিভাবে MySQL-এ INSERT IGNORE ক্লজ ব্যবহার করতে হয়।
উদাহরণ টেবিলটি বিবেচনা করুন যা একটি মৌলিক টেবিল তৈরি করে যাতে পণ্যের তথ্য রয়েছে:
টেবিল পণ্য তৈরি করুন (পণ্য_আইডি আইএনটি প্রাথমিক কী স্বয়ংক্রিয়_INCREMENT,
পণ্য_নাম VARCHAR ( 255 ) ,
VARCHAR বিভাগ ( 255 ) ,
মূল্য দশমিক ( 10 , 2 ) ,
পরিমাণ INT,
মেয়াদ শেষ হওয়ার_তারিখ DATE,
বারকোড BIGINT
) ;
একবার আমরা টেবিলটি তৈরি করার পরে, আসুন আমরা একটি ত্রুটিযুক্ত কিছু সারি সহ সারণিতে সারিগুলি সন্নিবেশ করার চেষ্টা করি।
মূল্য
( 'শেফ হ্যাট 25 সেমি' , 'বেকারি' , 24.67 , 57 , '2023-09-09' , 2854509564204 ) ,
( 'কোয়েলের ডিম - টিনজাত' , 'প্যানট্রি' , 17.99 , 67 , '2023-09-29' , 1708039594250 ) ,
( , 'বেকারি' , 92.53 , 10 , '2023-09-22' , 8704051853058 ) ;
আপনি লক্ষ্য করতে পারেন যে শেষ সারিতে একটি ত্রুটি রয়েছে। পূর্ববর্তী উদাহরণে দেওয়া হিসাবে আমরা ডেটা সন্নিবেশ করার চেষ্টা করলে কী ঘটে তা প্রদর্শন করার জন্য এটি ইচ্ছাকৃত।
একবার আমরা পূর্ববর্তী ক্যোয়ারীটি চালানোর পরে, এটি নিম্নরূপ ত্রুটি বার্তাটি ফেরত দেবে:
এসকিউএল ত্রুটি [ 1064 ] [ 42000 ] : আপনি একটি ত্রুটি আছে ভিতরে আপনার এসকিউএল সিনট্যাক্স; আপনার MySQL সার্ভার সংস্করণের সাথে সম্পর্কিত ম্যানুয়ালটি পরীক্ষা করুন জন্য কাছাকাছি ব্যবহার করার জন্য সঠিক সিনট্যাক্স ',' বেকারি ', 92.53, 10,' 2023 -09- 22 ', 8704051853058)' লাইনে 5
ফলস্বরূপ, প্রথম দুটি সারি বৈধ হওয়া সত্ত্বেও MySQL সম্পূর্ণ INSERT বিবৃতি বন্ধ করে দেবে। এটি কাটিয়ে ওঠার জন্য, আমরা নিম্নরূপ INSERT IGNORE ক্লজটি ব্যবহার করতে পারি:
মূল্য
( 'শেফ হ্যাট 25 সেমি' , 'বেকারি' , 24.67 , 57 , '2023-09-09' , 2854509564204 ) ,
( 'কোয়েলের ডিম - টিনজাত' , 'প্যানট্রি' , 17.99 , 67 , '2023-09-29' , 1708039594250 ) ,
( , 'বেকারি' , 92.53 , 10 , '2023-09-22' , 8704051853058 ) ;
MySQL বৈধ রেকর্ড ঢোকাবে এবং অবৈধটিকে উপেক্ষা করবে।
উপসংহার
এই টিউটোরিয়ালে, আমরা শিখেছি কিভাবে MySQL-এ INSERT IGNORE ক্লজটি ব্যবহার করতে হয় যাতে কোন সারিটি এড়িয়ে যেতে হয় যাতে একটি INSERT স্টেটমেন্টের সময় কোন ত্রুটি থাকে।