MySQL-এ ALTER TABLE স্টেটমেন্টে একাধিক ADD ক্লজ কমা দিয়ে আলাদা করে একক কোয়েরিতে কলাম এবং ইনডেক্স যোগ করা যায়।
টেবিল তৈরি
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(100),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.69 sec)
টেবিল ডেসক্রিপশন (পূর্বে)
mysql> DESC DemoTable;
+-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 2 rows in set (0.01 sec)
ArrivalDate কলাম এবং ইনডেক্স যোগ করা
mysql> ALTER TABLE DemoTable
-> ADD ArrivalDate DATETIME DEFAULT CURRENT_TIMESTAMP,
-> ADD INDEX(ArrivalDate);
Query OK, 0 rows affected (2.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
টেবিল ডেসক্রিপশন (পরে)
mysql> DESC DemoTable;
আউটপুট
+-------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+-------------------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(100) | YES | | NULL | | | ArrivalDate | datetime | YES | MUL | CURRENT_TIMESTAMP | | +-------------+--------------+------+-----+-------------------+----------------+ 3 rows in set (0.01 sec)
ব্যাখ্যা:
ADD ArrivalDate DATETIME DEFAULT CURRENT_TIMESTAMP— নতুন কলাম যোগ, ডিফল্ট মান বর্তমান টাইমস্ট্যাম্প।ADD INDEX(ArrivalDate)— সেই কলামে নন-ইউনিক ইনডেক্স (MUL) তৈরি।- একই
ALTER TABLE-এ কমা দিয়ে একাধিক অপারেশন করা যায় (এটোমিক অপারেশন)। KeyকলামেMULমানে নন-ইউনিক ইনডেক্স।
অন্যান্য ADD অপশন: ADD PRIMARY KEY, ADD UNIQUE INDEX, ADD FOREIGN KEY, ADD COLUMN ... FIRST/AFTER col।