ত্রুটিটি স্কেল মোডের কারণে যা সর্বশেষতম MYSQL 5.7 ডকুমেন্টেশন অনুসারে কঠোর মোড হতে পারে mode
মাইএসকিউএল ডকুমেন্টেশন 5.7 বলেছেন :
সার্ভারটি '0000-00-00' কে বৈধ তারিখ হিসাবে অনুমতি দেয় কিনা তা কঠোর মোডকে প্রভাবিত করে: কঠোর মোড সক্ষম না করা থাকলে, '0000-00-00' অনুমোদিত এবং সন্নিবেশকারীরা কোনও সতর্কতা উত্পন্ন করে না। যদি কঠোর মোড সক্ষম করা থাকে তবে '0000-00-00' অনুমোদিত নয় এবং আইজিএনওর না দেওয়া থাকলে সন্নিবেশগুলি একটি ত্রুটি তৈরি করে। ইনসার্ট ইগনোর এবং আপডেট ইগনোরের জন্য, '0000-00-00' অনুমোদিত এবং সন্নিবেশকারীরা একটি সতর্কতা উত্পন্ন করে।
MYSQL মোডটি পরীক্ষা করতে Check
SELECT @@GLOBAL.sql_mode global, @@SESSION.sql_mode session
STRICT_TRANS_TABLES মোড অক্ষম করা হচ্ছে
তবে ফর্ম্যাটটি অনুমোদনের জন্য 0000-00-00 00:00:00
আপনাকে মাইএসকিএল কনফিগারেশন ফাইলে বা কমান্ডের সাহায্যে স্ট্রিকT_TRANS_TABLES মোড অক্ষম করতে হবে
আদেশে
SET sql_mode = '';
অথবা
SET GLOBAL sql_mode = '';
কীওয়ার্ডটি ব্যবহারের GLOBAL
জন্য সুপার প্রিলিজগুলি প্রয়োজন এবং এটি সমস্ত ক্লায়েন্টরা সেই সময় থেকে সংযুক্ত অপারেশনগুলিকে প্রভাবিত করে
উপরে যদি /etc/mysql/my.cnf
উবুন্টু হিসাবে যান এবং মন্তব্য করার চেয়ে কাজ না করেSTRICT_TRANS_TABLES
এছাড়াও, আপনি স্থায়ীভাবে সার্ভার প্রারম্ভে SQL মোড সেট করতে চান তবে অন্তর্ভুক্ত SET sql_mode=''
মধ্যে my.cnf
লিনাক্স বা MacOS এর উপর। উইন্ডোজের জন্য এটি my.ini
ফাইলের মধ্যে করতে হবে।
বিঃদ্রঃ
তবে এমআইএসকিউএল 5.6-এ ডিফল্টরূপে কঠোর মোড সক্ষম নয়। সুতরাং এটি এমওয়াইএসকিউএল 6 ডকুমেন্টেশন অনুযায়ী ত্রুটি তৈরি করে না যা বলে
মাইএসকিউএল আপনাকে "ডামি তারিখ" হিসাবে '0000-00-00' এর একটি "শূন্য" মান সঞ্চয় করার অনুমতি দেয়। এটি কিছু ক্ষেত্রে NULL মান ব্যবহার করার চেয়ে সুবিধাজনক এবং কম ডেটা এবং সূচী স্থান ব্যবহার করে। '0000-00-00' অস্বীকার করতে, NO_ZERO_DATE এসকিউএল মোড সক্ষম করুন।
হালনাগাদ
@ ডিলান-সু-এর কথায় বাগ সংক্রান্ত বিষয়ে:
আমি মনে করি না যে এটি সময়ের সাথে সাথে এমওয়াইএসকিউএলটি বিকশিত হয়েছিল, কারণ পণ্যটির আরও উন্নতির উপর ভিত্তি করে কিছু জিনিস পরিবর্তিত হয়েছে।
তবে NOW()
ফাংশন সম্পর্কিত আমার কাছে আরও একটি সম্পর্কিত বাগ রিপোর্ট রয়েছে
ডেটটাইম ফিল্ড এখন ডিফল্ট গ্রহণ করে না ()
আর একটি দরকারী নোট [দেখুন TIMESTAMP এবং DATETIME এর জন্য স্বয়ংক্রিয় সূচনা এবং আপডেট করা ]
মাইএসকিউএল ৫..6.৫ অনুসারে, টাইমস্ট্যাম্প এবং ডেটটাইম কলামগুলি স্বয়ংক্রিয়ভাবে বর্তমান তারিখ এবং সময় (যা বর্তমান টাইমস্ট্যাম্প) আপডেট করা যেতে পারে initial 5.6.5 এর আগে, এটি কেবলমাত্র টাইমস্ট্যাম্পের জন্য, এবং প্রতি টেবিলে সর্বাধিক এক টাইমস্ট্যাম্প কলামের জন্য সত্য। নিম্নলিখিত নোটগুলিতে প্রথমে মাইএসকিউএল 5.6.5 এবং তার বেশি বয়সীদের জন্য স্বয়ংক্রিয় সূচনা এবং আপডেট করার বর্ণনা রয়েছে, তারপরে 5.6.5 পূর্ববর্তী সংস্করণগুলির জন্য পার্থক্য রয়েছে।
NO_ZERO_DATE সম্পর্কিত আপডেট
মাইএসকিউএল হিসাবে 7. of.৪ হিসাবে এই মোডটি অবচিত করা হয়েছে। পূর্ববর্তী সংস্করণের জন্য আপনাকে অবশ্যই কনফিগার ফাইলে সম্পর্কিত লাইনটি মন্তব্য করতে হবে। পড়ুন NO_ZERO_DATE উপর মাইএসকিউএল 5.7 ডকুমেন্টেশন
NULL
জন্য।