কম্পিউটার

যেখানে MySQL দৃষ্টিভঙ্গি অসামঞ্জস্যপূর্ণ হতে পারে এবং আমরা কীভাবে তাদের ধারাবাহিকতা নিশ্চিত করতে পারি?


আপডেটযোগ্য ভিউয়ের ক্ষেত্রে, এটা খুবই সম্ভব যে আমরা ভিউটির মাধ্যমে দৃশ্যমান নয় এমন ডেটা আপডেট করি কারণ আমরা একটি টেবিলের শুধুমাত্র আংশিক ডেটা প্রকাশ করার জন্য একটি দৃশ্য তৈরি করি। এই ধরনের আপডেট ভিউ অসঙ্গত করে তোলে. আমরা চেক বিকল্পের সাথে ব্যবহার করে মতামতের ধারাবাহিকতা নিশ্চিত করতে পারি ভিউ তৈরি বা পরিবর্তন করার সময়। যদিও WITH CHECK OPTION clause CREATE VIEW স্টেটমেন্টের একটি ঐচ্ছিক অংশ কিন্তু ভিউগুলিকে সামঞ্জস্যপূর্ণ করতে এটি খুবই কার্যকর৷

মূলত, WITH CHECK OPTION ক্লজ আমাদেরকে সেই সারিগুলি আপডেট বা সন্নিবেশ করাতে বাধা দেয় যা একটি ভিউয়ের মাধ্যমে দৃশ্যমান নয়৷ একটি সাধারণ অর্থে আমরা বলতে পারি যে চেক বিকল্প ধারা ব্যবহার করার পরে, MySQL নিশ্চিত করে যে ভিউটির সংজ্ঞা দ্বারা সন্নিবেশ বা আপডেট অপারেশন নিশ্চিত করা হয়েছে। নিচে চেক অপশন ক্লজ -

এর সিনট্যাক্স দেওয়া হল

সিনট্যাক্স

চেক অপশন সহ সিলেক্ট_স্টেটমেন্ট হিসাবে ভিউ ভিউ_নাম তৈরি করুন বা প্রতিস্থাপন করুন;

উদাহরণ

উপরের ধারণাটি ব্যাখ্যা করার জন্য, আমরা 'ছাত্র_তথ্য' −

টেবিল থেকে নিম্নলিখিত ডেটা ব্যবহার করছি
mysql> Student_info থেকে * নির্বাচন করুন;+------+---------+------------+--------- ---+| আইডি | নাম | ঠিকানা | বিষয় |+------+---------+------------+------------+| 101 | যশপাল | অমৃতসর | ইতিহাস || 105 | গৌরব | চণ্ডীগড় | সাহিত্য || 125 | রমন | সিমলা | কম্পিউটার || 130 | রাম | ঝাঁসি | কম্পিউটার |+------+---------+------------+------------+4 সেটে সারি (0.08 সেকেন্ড)

এখন, নিম্নলিখিত প্রশ্নের সাহায্যে, আমরা ভিউ নামগুলি তৈরি করব 'তথ্য'। এখানে আমরা চেক অপশন ব্যবহার করছি না।

mysql> আইডি, নাম, ঠিকানা, বিষয় নির্বাচন করুন হিসাবে তথ্য দেখুন বা প্রতিস্থাপন করুন Student_info যেখানে বিষয় ='কম্পিউটার'; কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.46 সেকেন্ড) mysql> তথ্য থেকে * নির্বাচন করুন;+---- ------------+---------+------------+| আইডি | নাম | ঠিকানা | বিষয় |+------+------+---------+------------+| 125 | রমন | সিমলা | কম্পিউটার || 130 | রাম | ঝাঁসি | কম্পিউটার |+------+------+---------+----------+2 সারি সেটে (0.00 সেকেন্ড)

যেহেতু, আমরা চেক বিকল্প ব্যবহার করিনি, তাই আমরা 'তথ্য'-এ একটি নতুন সারি সন্নিবেশ/আপডেট করতে পারি, যদিও এটি তার সংজ্ঞার সাথে মেলে না। এটি নিম্নলিখিত ক্যোয়ারী এবং এর ফলাফল -

এ চিত্রিত করা হয়েছে
mysql> তথ্য প্রবেশ করুন (আইডি, নাম, ঠিকানা, বিষয়) মান (132, 'শ্যাম', 'চন্ডিগড়', 'অর্থনীতি'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.37 সেকেন্ড) mysql> student_info থেকে * নির্বাচন করুন;+------+---------+------------+------------+| আইডি | নাম | ঠিকানা | বিষয় |+------+---------+------------+------------+| 101 | যশপাল | অমৃতসর | ইতিহাস || 105 | গৌরব | চণ্ডীগড় | সাহিত্য || 125 | রমন | সিমলা | কম্পিউটার || 130 | রাম | ঝাঁসি | কম্পিউটার || 132 | শ্যাম | চণ্ডীগড় | অর্থনীতি |+------+---------+------------+------------+5 সারি সেটে (0.00 সেকেন্ড)mysql> তথ্য থেকে * নির্বাচন করুন;+------+-------+---------+---------+ আইডি | নাম | ঠিকানা | বিষয় |+------+------+---------+------------+| 125 | রমন | সিমলা | কম্পিউটার || 130 | রাম | ঝাঁসি | কম্পিউটার |+------+------+---------+----------+2 সারি সেটে (0.00 সেকেন্ড)

উপরের ফলাফল সেটটি দেখায় যে নতুন সারিটি 'তথ্য' এর সংজ্ঞার সাথে মেলেনি তাই এটি দৃশ্যে দৃশ্যমান নয়। এখন, নিম্নলিখিত ক্যোয়ারীতে, আমরা একই ভিউ তৈরি করছি 'তথ্য'

'With Check OPTION' - ব্যবহার করে

mysql> আইডি, নাম, ঠিকানা, বিষয় নির্বাচন করুন হিসাবে দেখুন তথ্য তৈরি করুন 

এখন, যদি আমরা একটি সারি সন্নিবেশ করার চেষ্টা করি যা ভিউ 'তথ্য' এর সংজ্ঞার সাথে মেলে, মাইএসকিউএল আমাদের তা করার অনুমতি দেয়। এটি নিম্নলিখিত প্রশ্ন এবং এর ফলাফল থেকে পরিষ্কার করা যেতে পারে।

mysql> তথ্য প্রবেশ করুন (আইডি, নাম, ঠিকানা, বিষয়) মান (133, 'মোহন', 'দিল্লি', 'কম্পিউটার'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.07 সেকেন্ড) mysql> তথ্য থেকে * নির্বাচন করুন;+------+------+---------+------------+| আইডি | নাম | ঠিকানা | বিষয় |+------+------+---------+------------+| 125 | রমন | সিমলা | কম্পিউটার || 130 | রাম | ঝাঁসি | কম্পিউটার || 133 | মোহন | দিল্লী | কম্পিউটার |+------+------+---------+----------+3 সারি সেটে (0.00 সেকেন্ড)

কিন্তু ধরুন আমরা যদি সারিটি সন্নিবেশ করার চেষ্টা করি যেটি ভিউ 'তথ্য'-এর সংজ্ঞার সাথে মেলে না, MySQL আমাদের অনুমতি দেবে না এবং ত্রুটিটি ছুঁড়ে দেয় -

mysql> তথ্য প্রবেশ করান(আইডি, নাম, ঠিকানা, বিষয়) মান(134, 'চরণজিৎ', 'অমৃতসর', 'জিওফিজিক্স'); ত্রুটি 1369 (HY000):চেক বিকল্প ব্যর্থ হয়েছে

  1. আমরা কি একটি মাইএসকিউএল ক্যোয়ারীতে কোথায়, এবং এবং বা ব্যবহার করতে পারি?

  2. কিভাবে MySQL এবং তাদের গণনা স্বতন্ত্র মান ফেরত?

  3. কিভাবে আমি MySQL এ ক্যাসকেড দেখতে পারি?

  4. কোথায় ধারা সহ MySQL ভিউ ব্যবহার করবেন?