কম্পিউটার

যদি আমি ENUM-এ অবৈধ মান সন্নিবেশ করি তাহলে কি MySQL প্রদান করবে?


যদি কঠোর SQL মোড নিষ্ক্রিয় করা হয় এবং আমরা ENUM-এ অবৈধ মান (যা অনুমোদিত গণনার মানের তালিকায় নেই) সন্নিবেশ করি তাহলে MySQL একটি ত্রুটি নিক্ষেপ করার পরিবর্তে একটি খালি স্ট্রিং সন্নিবেশ করবে। কিন্তু যদি কঠোর এসকিউএল মোড সক্ষম করা হয় তাহলে মাইএসকিউএল অবৈধ মান সন্নিবেশ করার ক্ষেত্রে একটি ত্রুটি ছুড়ে দেয়।

উদাহরণ

কঠোর SQL মোড নিষ্ক্রিয় করার পরে, আমরা নিম্নরূপ ENUM এ অবৈধ স্ট্রিং সন্নিবেশ করি -

mysql> Insert into result(id, name, grade) values(100, 'Gaurav','abcd');
Query OK, 1 row affected, 1 warning (0.03 sec)

mysql> Select * from result;
+-----+--------+-------+
| Id | Name    | Grade |
+-----+--------+-------+
| 100 | Gaurav |       |
+-----+--------+-------+
1 row in set (0.00 sec)

উপরের ক্যোয়ারী থেকে, আমরা দেখতে পাচ্ছি যে MySQL অবৈধ স্ট্রিং এর জায়গায় একটি খালি স্ট্রিং সন্নিবেশ করেছে এবং কোন ত্রুটি ছুড়ে দেওয়া হয়নি৷

এখন, নিম্নলিখিত প্রশ্নের সাহায্যে আমরা সূচক নম্বর পেতে পারি, যা 0 এবং এটি নিশ্চিত করে যে MySQL দ্বারা ঢোকানো স্ট্রিংটি একটি খালি স্ট্রিং কারণ খালি স্ট্রিংয়ের সূচক মান সর্বদা 0 হয়।

mysql> Select Grade + 0 from result;
+-----------+
| Grade + 0 |
+-----------+
| 0         |
+-----------+
1 row in set (0.00 sec)

কিন্তু, SQL কঠোর মোড সক্রিয় করার পরে, নীচের ক্যোয়ারীতে করা হয়েছে, MySQL ENUM-এ অবৈধ স্ট্রিং সন্নিবেশ করার সময় একটি ত্রুটি ছুঁড়েছে।

mysql> Set SQL_MODE = 'Traditional';
Query OK, 0 rows affected (0.00 sec)

mysql> Insert into result(id, name, grade) values(101, 'Saurabh','abcd');
ERROR 1265 (01000): Data truncated for column 'Grade' at row 1

  1. কিভাবে জাভা ব্যবহার করে একটি MySQL কলাম মান মধ্যে DATE সন্নিবেশ করান?

  2. একটি MySQL ক্যোয়ারীতে একটি IF স্টেটমেন্ট সন্নিবেশ করার সঠিক উপায় কি?

  3. একটি MySQL টেবিলে JSON ঢোকাবেন?

  4. একটি MySQL ডাটাবেসে নাল মান সন্নিবেশ করার জন্য জাভা অ্যাপ্লিকেশন?