কম্পোজিট প্রাইমারি কী যোগ করতে ALTER TABLE কমান্ড ব্যবহার করা হয়।
টেবিল তৈরি
mysql> CREATE TABLE CompositePrimaryKey (
-> Id INT,
-> StudentName VARCHAR(100),
-> Age INT
-> );
Query OK, 0 rows affected (0.56 sec)
DESC দিয়ে বর্তমান কী যাচাই করি:
mysql> DESC CompositePrimaryKey;
আউটপুট:
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | StudentName | varchar(100) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 3 rows in set (0.09 sec)
Key কলামে কোনো PRI নেই, অর্থাৎ প্রাইমারি কী নেই।
কম্পোজিট প্রাইমারি কী যোগ করা
mysql> ALTER TABLE CompositePrimaryKey ADD PRIMARY KEY(Id, StudentName); Query OK, 0 rows affected (1.26 sec) Records: 0 Duplicates: 0 Warnings: 0
যাচাই:
mysql> DESC CompositePrimaryKey;
আউটপুট:
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | NO | PRI | NULL | | | StudentName | varchar(100) | NO | PRI | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
এখন Id এবং StudentName উভয় কলামেই PRI দেখা যাচ্ছে, অর্থাৎ কম্পোজিট প্রাইমারি কী সফলভাবে যোগ হয়েছে।