공부/My SQL
Select Create Table, Insert Ignore INTO.., ON DUPLICATE KEY
딸기버블티
2021. 3. 2. 22:43
다른 테이블 SELECT 하여 Table Create 하기
1
2
3
4
|
CREATE TABLE testTbl5
( SELECT emp_no, first_name, last_name
FROM employees.employees
);
|
cs |
이렇게 하면 SELECT 한 컬럼 명칭 그대로 테이블이 생성된다.
원하는 컬럼명칭으로 만들고 싶을 땐 이렇게 하면 된다.
1
2
3
4
5
|
create TABLE testljy
(
SELECT id AS jyid, Fname AS jyfname, Lname AS jylname
FROM testtbl4
);
|
cs |
AS 를 붙인 후 SELECT 하면
원하는대로 테이블이 생긴다!
다중 행 INSERT 시 기본키가 중복되면 건너뛰게 하기
3개의 행을 INSERT 할 때, 1번째행 INSERT 시 무결성에 의해 2,3번째행도 INSERT 가 되지 않을 때,
오류 행은 건너뛰고 2,3번째행을 입력하는 방법이 있다.
1
2
3
|
INSERT IGNORE INTO memberTBL VALUES ('BBK', '바비코', '미국');
INSERT IGNORE INTO memberTBL VALUES ('SJG', '서장훈', '서울');
INSERT IGNORE INTO memberTBL VALUES ('HJY', '현주엽', '경기');
|
cs |
INSERT 뒤 IGNORE 를 붙여주면, 오류가 나던 말던 다음 행을 INSERT 한다.
기본 키 중복 시 수정되도록 하기
위에서는 기본키가 같은 데이터가 있을 때 무시하고 입력하는 것을 했는데,
기본키가 같은 데이터가 있을 때 데이터를 수정하고 싶으면 어떻게 할까?
INSERT INTO 문은 동일하고 ON DUPLICATE KEY UPDATE 컬럼='수정값', 컬럼2='수정값' 이렇게 하면 된다.
1
2
3
4
|
INSERT INTO memberTBL VALUES('BBK', '바비킴', '미국')
ON DUPLICATE KEY UPDATE name='빠삐코', addr='미국';
INSERT INTO memberTBL VALUES('DJM', '동짜몽', '일본')
ON DUPLICATE KEY UPDATE name='동짜몽', addr='일본';
|
cs |
>>BBK 라는 키가 이미 입력되어 있을 때, name 을 빠삐코로, addr 을 미국으로 업데이트한다.
>>DJM 라는 키가 이미 입력되어 있을 때, name 을 동짜몽으로, addr 을 일본으로 업데이트한다.