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

MySQL에서 ALTER TABLE ADD UNIQUE로 복합 유니크 제약 추가하기

ALTER TABLE ... ADD UNIQUE 인덱스명(컬럼1, 컬럼2)로 기존 테이블에 복합 유니크 제약(인덱스)을 추가할 수 있습니다.

테이블 생성

mysql> CREATE TABLE DemoTable1811 (
    -> FirstName VARCHAR(20),
    -> LastName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.00 sec)

복합 유니크 인덱스 추가

mysql> ALTER TABLE DemoTable1811 ADD UNIQUE unique_index_first_last_name(FirstName, LastName);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

데이터 삽입 (중복 테스트)

mysql> INSERT INTO DemoTable1811 VALUES('John','Smith');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1811 VALUES('John','Doe');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1811 VALUES('Adam','Smith');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1811 VALUES('John','Doe');
ERROR 1062 (23000): Duplicate entry 'John-Doe' for key 'unique_index_first_last_name'

데이터 조회

mysql> SELECT * FROM DemoTable1811;
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Adam      | Smith    |
| John      | Doe      |
| John      | Smith    |
+-----------+----------+
3 rows in set (0.00 sec)

핵심: (FirstName, LastName) 조합이 유니크해야 함. 'John'+'Doe' 두 번째 삽입 시 에러. ADD UNIQUE는 인덱스 생성과 제약 추가를 동시에 수행. DROP INDEX 인덱스명으로 제거 가능.

  1. MySQL-এ বিদ্যমান টেবিলে নতুন ENUM কলাম যোগ করুন

  2. MySQL-এ দুটি কলামের জোড়া (pair) কে UNIQUE করতে ALTER TABLE ব্যবহার

  3. MySQL-এ ALTER TABLE CHANGE ব্যবহার করে কলামকে NULLable করা (VARCHAR থেকে NULL ডিফল্ট)

  4. MySQL-এ ON DUPLICATE KEY UPDATE-এর জন্য কনস্ট্রেইন্ট যোগ করা