CREATE TABLE tablename
(
column1 datatype NOT NULL,
coulmn2 datatype NOT NULL,
...
CONSTRAINT constraint_name => 생략 가능
PRIMARY KEY (column1, column2, ...)
);
ALTER TABLE tablename
ADD PRIMARY KEY (column1, column2, ...);
CREATE table person
(
pid int NOT NULL,
name varchar(16),
age int,
sex char,
PRIMARY KEY (pid)
);
desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| pid | int | NO | PRI | NULL | | # key 등록 완료
| name | varchar(16) | YES | | NULL | |
| age | int | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
CREATE table animal
(
name varchar(16) NOT NULL,
type varchar(16) NOT NULL,
age int,
CONSTRAINT PK_Person
PRIMARY KEY (name, type)
);
desc animal;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(16) | NO | PRI | NULL | |
| type | varchar(16) | NO | PRI | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
📌 테이블 당 기본 key는 하나 뿐이다.
- primary key를 설정해주는 모든 column이 하나의 key
ALTER TABLE tablename
DROP PRIMARY KEY;
📌 삭제 시에는 key 값 입력이 필요없다.
- primary key는 table 당 하나 이므로 별도의 key값 입력이 필요 없다.