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

MySQL-এ INFORMATION_SCHEMA.COLUMNS দিয়ে নির্দিষ্ট কলাম কোন টেবিলে আছে তা খুঁজে বের করা

ডেটাবেসে কোন কলাম (যেমন EmployeeAge) কোন কোন টেবিলে আছে তা খুঁজে বের করতে INFORMATION_SCHEMA.COLUMNS ভিউ কোয়েরি করা হয়। এটি স্কিমা এক্সপ্লোরেশন এবং মাইগ্রেশনের জন্য অত্যন্ত উপযোগী।

সিনট্যাক্স

SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = SCHEMA()
  AND column_name = 'yourColumnName';
  • table_schema = SCHEMA() — বর্তমান ডেটাবেস (DATABASE() সমতুল্য)।
  • column_name = 'EmployeeAge' — খুঁজতে চাওয়া কলামের নাম।

কোয়েরি: 'EmployeeAge' কলামवाले টেবিলগুলো

mysql> SELECT table_name, column_name
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_schema = SCHEMA()
      AND column_name = 'EmployeeAge';

আউটপুট (উদাহরণ):

+---------------+-------------+
| TABLE_NAME    | COLUMN_NAME |
+---------------+-------------+
| demotable1153 | EmployeeAge |
| demotable1297 | EmployeeAge |
| demotable1303 | EmployeeAge |
| demotable1328 | EmployeeAge |
| demotable1378 | EmployeeAge |
| demotable1530 | EmployeeAge |
| demotable1559 | EmployeeAge |
| demotable1586 | EmployeeAge |
| demotable1798 | EmployeeAge |
| demotable1901 | EmployeeAge |
| demotable511  | EmployeeAge |
| demotable912  | EmployeeAge |
+---------------+-------------+
12 rows in set (0.00 sec)

যাচাই: একটি টেবিলের কাঠামো দেখানো

mysql> DESC demotable1153;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| EmployeeName | varchar(40) | YES  | MUL | NULL    |                |
| EmployeeAge  | int(11)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

অতিরিক্ত ফিল্টারিং

-- নির্দিষ্ট টাইপের কলাম
WHERE data_type = 'int' AND column_name LIKE '%age%'

-- প্রাইমারি কী কলাম
WHERE column_key = 'PRI'

-- নালেবল কলাম
WHERE is_nullable = 'YES'

সর্বোত্তম অনুশীলন

  • স্কিমা ডকুমেন্টেশন জেনারেট করতে এই কোয়েরি ব্যবহার করুন।
  • মাইগ্রেশন স্ক্রিপ্টে কলাম এক্সিস্টেন্স চেক করতে: IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE ...)।
  • information_schema কোয়েরি মেটাডেটা লক নেয় না (বেশিরভাগ ক্ষেত্রে), তাই প্রোডাকশনে সেফ।
  1. MySQL-এ নির্দিষ্ট কলাম নামে টেবিল খুঁজে বের করা

  2. MySQL-এ কলামের সব মান থেকে শেষ ৩ ডিজিটের যোগফল বের করা

  3. MySQL-এ CONCAT দিয়ে সকল কলাম একোকত্রিত করে নতুন কলাম তৈরি করা

  4. MySQL에서 GRANT SELECT ON *.*로 모든 데이터베이스 모든 테이블 읽기 권한 주기