공부/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 을 일본으로 업데이트한다.