DB/SQL

insert into on duplicate key update (oracle merge) function + DDL alter

ej503 2022. 6. 29. 11:26
create table insert_test
(
	seq int(10) not null
		primary key,
	cont text null,
	name varchar(15) null,
	tel_num int null,
	input_date datetime null
);

INSERT INTO insert_test (seq, cont, name, tel_num, input_date) VALUES (1, '대한민국은 코로나를 잘 극복 하고 있습니다.', '홍길동', 1012345678, '2020-05-15 14:35:10');
INSERT INTO insert_test (seq, cont, name, tel_num, input_date) VALUES (2, '대한민국은 코로나를 잘 극복 하고 있습니다.', '홍길동', 1012345678, '2020-05-15 14:35:10');
INSERT INTO insert_test (seq, cont, name, tel_num, input_date) VALUES (3, '대한민국은 코로나를 잘 극복 하고 있습니다.', '홍길동', 1012345678, '2020-05-15 14:35:10');
INSERT INTO insert_test (seq, cont, name, tel_num, input_date) VALUES (4, '대한민국은 코로나를 잘 극복 하고 있습니다.', '홍길동', 1012345678, '2020-05-15 14:35:10');
INSERT INTO insert_test (seq, cont, name, tel_num, input_date) VALUES (5, '대한민국은 코로나를 잘 극복 하고 있습니다.', '홍길동', 1012345678, '2020-05-15 14:35:10');


create table insert_test2
(
	seq int(10) not null,
	cont text null,
	name varchar(15) null,
	tel_num int null,
	input_date datetime null
);


INSERT INTO insert_test2 (seq, cont, name, tel_num, input_date) VALUES (4, '사회적 거리두기를 잘 실천 합시다!', '손흥민', 1012345678, '2020-02-01 12:32:22');
INSERT INTO insert_test2 (seq, cont, name, tel_num, input_date) VALUES (5, '사회적 거리두기를 잘 실천 합시다!', '손흥민', 1012345678, '2020-02-01 12:32:22');
INSERT INTO insert_test2 (seq, cont, name, tel_num, input_date) VALUES (6, '사회적 거리두기를 잘 실천 합시다!', '손흥민', 1012345678, '2020-02-01 12:32:22');
INSERT INTO insert_test2 (seq, cont, name, tel_num, input_date) VALUES (7, '사회적 거리두기를 잘 실천 합시다!', '손흥민', 1012345678, '2020-02-01 12:32:22');
insert into insert_test 
select * from insert_test2 b 
on duplicate key update
cont = b.cont,
name = b.name,
tel_num = b.tel_num,
input_date = now();
insert into insert_test 
values (2, "사회적 거리두기를 잘 실천 합시다!", "손흥민", 1012345678, now())
on duplicate key update cont = '사회적 거리두기를 실천 합시다.',
                        name = '손흥민',
                        tel_num = 1012345678,
                        input_date = now();
//null to not null
alter table insert_test modify cont text not null;

//column name 변경
alter table insert_test change cont context text not null;

//add column 위치 설정까지
alter table insert_test add department text null after input_date;

 

'DB > SQL' 카테고리의 다른 글

SQL constraint 제약조건 (fk, pk, unique, default, check)  (0) 2022.06.30
DB index 정리  (0) 2022.06.29
FD 함수적 종속성  (0) 2022.06.28
SQL update, delete function 정리  (0) 2022.06.28
SQL Outer join 예제  (0) 2022.06.27