2. mysql insert 문의 모든것

AUTO_INCREMENT의 시작값 변경해 주기

데이터를 정리하기 위해 시작 하는 primary 키의 AUTO_INCREMENT 값을 변경해 주어야 할 경우가 있다.
다음 명령어를 통해 원하는 값부터 다시 AUTO_INCREMENT가 시작되도록 할 수 있다.

1
ALTER TABLE [테이블명] AUTO_INCREMENT=[시작할려는 순서]

ON DUPLICATE KEY를 이용한 중복키 관리

여러개의 데이터를 한번에 입력할 때 기존에 있던 데이터는 키값은 유지하고 내용만 변경해야 할 경우가 있다.
이 경우는 on duplicate key 를 활용하면 기존에 있던 데이터를 유지하면서 변경된 내용만 업데이트를 시켜줄 수 있다.

example

1
2
3
4
5
6
7
8
9
10
11
INSERT INTO mytable (id, a, b, c)
VALUES (1, 'a1', 'b1', 'c1'),
(2, 'a2', 'b2', 'c2'),
(3, 'a3', 'b3', 'c3'),
(4, 'a4', 'b4', 'c4'),
(5, 'a5', 'b5', 'c5'),
(6, 'a6', 'b6', 'c6')
ON DUPLICATE KEY UPDATE id=VALUES(id),
a=VALUES(a),
b=VALUES(b),
c=VALUES(c);

INSERT IGNOE를 이용한 중복키 단순히 무시하기

여러개의 데이터를 한번에 입력할 때 기존에 있던 정보는 아예 입력하지 않는 것이 필요한 경우가 있다.
이 경우에는 다음과 같이 insert ignore 문을 활용하여 중복된 키를 가지면 입력을 시키지 않도록 할 수 있다.

아래 예제는 unique 키가 두개의 키값에 걸려있는 경우 첫번째 id 값이 입력되지 않아도 insert 문이 동작하기에 다음과 같은 예제를 사용한다.
아래의 경우 가령 james라는 키값과 barkely라는 키값에 unique 키가 걸려있고 해당 데이터가 이미 존재하는 경우 아래의 insert 문은 그냥 무시된다.

example

1
2
ALTER TABLE person ADD UNIQUE INDEX (first_name, last_name)
INSERT IGNORE INTO person VALUES (NULL, 15, 'James', 'Barkely')

Mysql 강의 04. mysql update 문의 모든것 nodejs 페이스북 회원가입

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×