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

MySQL-এ CREATE TABLE ... LIKE ব্যবহার করে বিদ্যমান টেবিল থেকে নতুন টেবিল তৈরি করা


MySQL-এ বিদ্যমান টেবিলের কাঠামো (Structure) কপি করে নতুন টেবিল তৈরি করা

একটি টেবিলের কাঠামো (কলাম, ডেটা টাইপ, ইনডেক্স, কনস্ট্রেইন্ট ইত্যাদি) কপি করে নতুন একটি খালি টেবিল তৈরি করতে CREATE TABLE ... LIKE সিনট্যাক্স ব্যবহার করা হয়। ডেটা কপি হয় না, শুধু কাঠামো।

সিনট্যাক্স

CREATE TABLE newTableName LIKE oldTableName;

উদাহরণ

মূল টেবিল তৈরি

mysql> CREATE TABLE ShowCreateTableCommand (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> FirstName VARCHAR(20),
    -> LastName VARCHAR(20),
    -> Age INT,
    -> TotalMarks INT,
    -> PRIMARY KEY(Id)
    -> );

টেবিল কাঠামো দেখানো (DESC)

mysql> DESC ShowCreateTableCommand;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| Id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| FirstName  | varchar(20) | YES  |     | NULL    |                |
| LastName   | varchar(20) | YES  |     | NULL    |                |
| Age        | int(11)     | YES  |     | NULL    |                |
| TotalMarks | int(11)     | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

SHOW CREATE TABLE দিয়ে বিস্তারিত কাঠামো

mysql> SHOW CREATE TABLE ShowCreateTableCommand\G
*************************** 1. row ***************************
Table: ShowCreateTableCommand
Create Table: CREATE TABLE `showcreatetablecommand` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `FirstName` varchar(20) DEFAULT NULL,
  `LastName` varchar(20) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  `TotalMarks` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

নতুন টেবিল তৈরি (LIKE ব্যবহার করে)

mysql> CREATE TABLE StudentInformationDemo LIKE ShowCreateTableCommand;
Query OK, 0 rows affected (0.49 sec)

নতুন টেবিলের কাঠামো যাচাই

mysql> SHOW CREATE TABLE StudentInformationDemo\G
*************************** 1. row ***************************
Table: StudentInformationDemo
Create Table: CREATE TABLE `studentinformationdemo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `FirstName` varchar(20) DEFAULT NULL,
  `LastName` varchar(20) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  `TotalMarks` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

দুই টেবিলের কাঠামো একই হয়েছে। ডেটা কপি করতে হলে INSERT INTO newTable SELECT * FROM oldTable ব্যবহার করুন।

  1. MySQL-এ VIEW থেকে টেবিল তৈরি করা (CREATE TABLE ... SELECT)

  2. MySQL-এ NOT IN() ব্যবহার করে নির্দিষ্ট মান বাদ দিয়ে রেকর্ড নির্বাচন

  3. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা

  4. MySQL-এ DISTINCT কলাম থেকে গড় (AVG) বের করা