কম্পিউটার টিউটোরিয়াল

MySQL-এ foreign_key_checks কি পুরো ডেটাবেসে প্রয়োগ হয়?

foreign_key_checks একটি সেশন-ভিত্তিক (session-scoped) সিস্টেম ভেরিয়েবল। এর দুটি স্কোপ রয়েছে: GLOBAL এবং SESSION।

সেটিংস

mysql> SET foreign_key_checks = 0;        -- সেশন লেভেল
mysql> SET GLOBAL foreign_key_checks = 0; -- গ্লোবাল লেভেল

ভেরিয়েবল বিবরণ

PropertyValue
System Variableforeign_key_checks
ScopeGlobal, Session
DynamicYes
TypeBoolean
Default ValueON (1)

foreign_key_checks = 0 হলে

  • DROP SCHEMA — ফরেন কী রেফারেন্স থাকলেও স্কিমা ড্রপ করতে দেয়
  • DROP TABLE — অন্য টেবিল রেফারেন্স করলেও টেবিল ড্রপ করতে দেয়
  • ডেটা ইনসার্ট/আপডেটে ফরেন কী চেক বাইপাস হয়

foreign_key_checks = 1 হলে (ডিফল্ট)

  • ফরেন কী কনস্ট্রেইন্ট বাধ্যতামূলক
  • এক্সিস্টিং ডেটা স্ক্যান করে না — অর্থাৎ 0 থাকা সময় ইনসার্ট হওয়া রোগুলো後で ভেরিফাই হয় না

সতর্কতা: প্রোডাকশনে এটি ০ করতে গিয়ে ডেটা ইন্টিগ্রিটি ভাঙতে পারে। শুধু মাইগ্রেশন বা বাল্ক লোডের সময় সতর্কতার সাথে ব্যবহার করুন।

  1. কমান্ড লাইন থেকে MySQL ডেটাবেসে কানেক্ট করা

  2. MySQL ডেটাবেস ফাইলগুলো কোথায় স্টোর থাকে? (@@datadir)

  3. MySQL에서 데이터베이스의 테이블 개수 조회하기

  4. MySQL ডেটাবেসের সব টেবিল লিস্ট করা