যখন আমি এই কমান্ডটি মাইএসকিউএলে চালিত করি:
SET FOREIGN_KEY_CHECKS=0;
এটি পুরো ইঞ্জিনকে প্রভাবিত করে বা এটি কেবল আমার বর্তমান লেনদেন?
যখন আমি এই কমান্ডটি মাইএসকিউএলে চালিত করি:
SET FOREIGN_KEY_CHECKS=0;
এটি পুরো ইঞ্জিনকে প্রভাবিত করে বা এটি কেবল আমার বর্তমান লেনদেন?
উত্তর:
এটি আপনার সেশনের উপর ভিত্তি করে তৈরি করার সময় সেশনভিত্তিক।
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
এটি অনুসারে, FOREIGN_KEY_CHECKSসুযোগের জন্য "উভয়"। এর অর্থ এটি সেশনের জন্য সেট করা যেতে পারে:
SET FOREIGN_KEY_CHECKS=0;
বা বিশ্বব্যাপী:
SET GLOBAL FOREIGN_KEY_CHECKS=0;
প্রকৃতপক্ষে, দুটি foreign_key_checksভেরিয়েবল রয়েছে: একটি গ্লোবাল ভেরিয়েবল এবং একটি স্থানীয় (প্রতি সেশন) ভেরিয়েবল। সংযোগের পরে, সেশন ভেরিয়েবলটি বৈশ্বিক ভেরিয়েবলের মান থেকে আরম্ভ করা হয়।
কমান্ডটি SET foreign_key_checksসেশন ভেরিয়েবল পরিবর্তন করে।
গ্লোবাল ভেরিয়েবল পরিবর্তন করতে, ব্যবহার করুন SET GLOBAL foreign_key_checksবা SET @@global.foreign_key_checks।
নিম্নলিখিত ম্যানুয়াল বিভাগগুলি পরামর্শ করুন:
http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/server -system-variables.html
foreign_key_checksএবং একই অধিবেশনে এটি বিদেশী কী-বাধার প্রতিবন্ধকতাগুলি উপেক্ষা করার প্রত্যাশা করে। আপনাকে অ-গ্লোবাল ভেরিয়েবল সেট করতে হবে।
রনের ব্যাখ্যা অনুসারে, স্থানীয় এবং বৈশ্বিক দুটি ভেরিয়েবল রয়েছে। স্থানীয় পরিবর্তনশীল সর্বদা ব্যবহৃত হয়, এবং সংযোগের ভিত্তিতে বৈশ্বিক হিসাবে একই।
SET FOREIGN_KEY_CHECKS=0;
SET GLOBAL FOREIGN_KEY_CHECKS=0;
SHOW Variables WHERE Variable_name='foreign_key_checks'; # always shows local variable
গ্লোবাল ভেরিয়েবল সেট করার সময়, বিদ্যমান সংযোগগুলির জন্য স্থানীয় একটিকে পরিবর্তন করা হয় না। আপনাকে পুনরায় সংযোগ করতে হবে বা স্থানীয় ভেরিয়েবলটিও সেট করতে হবে।
সম্ভবত অপ্রকাশিত, MYSQL বিদেশী কীগুলি প্রয়োগ করে না যখন FOREIGN_KEY_CHECKS পুনরায় সক্ষম হয়। বিদেশী কী এবং চেক চালু থাকা সত্ত্বেও এটি একটি বেমানান ডাটাবেস তৈরি করা সম্ভব করে।
আপনি যদি চান যে আপনার বিদেশী কীগুলি সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ হয়, আপনার চেক চলাকালীন আপনার কীগুলি যুক্ত করতে হবে।
# will get you the current local (session based) state.
SHOW Variables WHERE Variable_name='foreign_key_checks';
আপনি যদি বিশ্বব্যাপী সেট না করেন তবে কেবলমাত্র আপনার সেশনটি প্রভাবিত হবে।
যখন আমি একটি নতুন স্থানীয় অ্যাপাচি সার্ভারে ড্রপাল ডাটাবেস স্থানান্তরিত করার চেষ্টা করেছি (আমি উইন্ডোজ মেশিনে এক্সএএমপিপি ব্যবহার করছি) তখন আমারও একই ত্রুটি হয়েছিল। আসলে আমি এই ত্রুটির অর্থ জানি না, তবে নীচের পদক্ষেপগুলি চেষ্টা করার পরে, আমি ত্রুটি ছাড়াই ডাটাবেসটি আমদানি করেছি। আশা করি এটি সহায়তা করতে পারে:
সিটিতে php.ini পরিবর্তন করা হচ্ছে: \ xampp \ php \ php.ini i
max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M
সি: \ xampp \ mysql \ bin \ my.ini এ my.ini পরিবর্তন করা হচ্ছে
max_allowed_packet = 1024M
SET FOREIGN_KEY_CHECKS=0;মাইএসকিএল ক্যোয়ারী ব্রাউজার ব্যবহারের ক্ষেত্রে, সংস্করণ 1.1.20-তে কোনও প্রভাব ফেলবে না। যাইহোক, এটি মাইএসকিএল ক্যোয়ারী ব্রাউজার 1.2.17 এ দুর্দান্ত কাজ করে