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

MySQL টেবিলে কলামের আকার কীভাবে পরিবর্তন করবেন?


আমরা ALTER কমান্ড ব্যবহার করে একটি কলামের আকার পরিবর্তন করতে পারি। দেখি কীভাবে কলামের আকার পরিবর্তন করা যায়। ধরি আমরা একটি কলাম কিছু আকার নিয়ে সংজ্ঞায়িত করেছি। ইনসার্ট করার সময় যদি আমরা সংজ্ঞায়িত আকারের চেয়ে বড় আকার দিই, তবে একটি এরর জেনারেট হবে।

উপরের সমস্যাটি কলাম আকার পরিবর্তন করে সমাধান করা যায়। ভালো বোঝার জন্য, CREATE কমান্ড ব্যবহার করে একটি টেবিল তৈরি করি:

mysql> CREATE table ModifyColumnNameDemo -> ( -> id int, -> StudentName varchar(10) -> ); Query OK, 0 rows affected (0.45 sec)

টেবিল সফলভাবে তৈরি হওয়ার পর, INSERT কমান্ড ব্যবহার করে টেবিলে রেকর্ড ইনসার্ট করি।

mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor'); ERROR 1406 (22001): Data too long for column 'StudentName' at row 1

উপরের কোয়ারী থেকে আমরা এরর 1406 পাচ্ছি। এই এররটি কলাম আকার পরিবর্তন করে সমাধান করা যায়। আমরা ALTER কমান্ড ব্যবহার করতে পারি। নিচে সিনট্যাক্স দেওয়া হলো:

ALTER table yourTableName modify column_name;

উপরের কোয়ারী প্রয়োগ করে কলামের আকার কিছু আকারে পরিবর্তন করি:

mysql> ALTER table ModifyColumnNameDemo modify StudentName varchar(200); Query OK, 0 rows affected (1.54 sec) Records: 0 Duplicates: 0 Warnings: 0

এরপর আমরা চেক করতে পারি যে 'StudentName' কলামের আকার 200 হয়েছে। কোয়েরি নিম্নরূপ:

mysql> DESC ModifyColumnNameDemo;

ফলাফল নিম্নরূপ:

+-------------+--------------+------+-----+---------+-------+ | Field       | Type         | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ |id | int(11) | YES          |      | NULL|       | | StudentName | varchar(200) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)

উপরে StudentName কলামটি দেখুন, আকার 200-এ পরিবর্তন হয়েছে। এখন আমরা টেবিলে একটি রেকর্ড ইনসার্ট করতে পারি এবং কোনো এরর পাবো না। চেক করি:

mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor'); Query OK, 1 row affected (0.14 sec)

উপরের রেকর্ডটি সফলভাবে টেবিলে ইনসার্ট হয়েছে। উপরের ইনসার্ট করা রেকর্ড SELECT কমান্ড ব্যবহার করে দেখি:

mysql> SELECT * from ModifyColumnNameDemo;

ফলাফল নিম্নরূপ:

| id | StudentName | +------+-------------+ | 1 | CarolTaylor| +------+-------------+ 1 row in set (0.00 sec)

উপরের আউটপুটে দেখুন, কলামের আকার পরিবর্তন করার পর রেকর্ড সফলভাবে ইনসার্ট হয়েছে।


  1. MySQL টেবিলের কলামের ডেটা টাইপ পরিবর্তন করুন

  2. MySQL-এ কলামের ডিফল্ট ভ্যালু পরিবর্তন করুন

  3. MySQL-এ ডISTINCT কলামের ফ্রিকোয়েন্সি গণনা করা (GROUP BY)

  4. MySQL-এ টেবিলের কাঠামো ক্লোন করা