728x90
sql에서 upsert 사용방법
insert into @table
(arg1, arg2, arg3)
values
(@arg1, @arg2, @arg3)
on duplicate key update (key를 제외한 update할 칼럼)
arg2 = @arg2, arg3 = @arg3
파이썬으로 upsert하는 방법을 보여주기 전에 MySQL에서 upsert를 먼저 보여드리겠습니다.
사용 예시를 보여주기 위해 exam db에 price테이블을 만든 후 데이터를 입력해보겠습니다.
use exam;
create table price_2(
날짜 varchar(10),
티커 varchar(6),
종가 int,
거래량 int,
primary key(날짜, 티커)
);
insert into price_2 (날짜, 티커, 종가, 거래량)
values
('2021-01-02','000001',1340,1000),
('2021-01-03','000001',1315,2000),
('2021-01-02','000002',500,200);
그 후에 upsert를 통해 새로운 데이터를 추가해 보겠습니다.
insert into price_2 (날짜, 티커, 종가, 거래량)
values
('2021-01-02','000001',1340,1000),
('2021-01-03','000001',1315,2000),
('2021-01-02','000002',500,200),
('2021-01-03','000002',1380,3000)
as new
on duplicate key update
종가 = new.종가, 거래량 = new.거래량;
이처럼 upsert 기능을 이용하면 시계열 데이터의 추가 및 수정을 한번에 할 수 있습니다.
파이썬에서 sql 데이터에 upsert하는 과정을 다음 포스트에서 소개해 드리겠습니다.
'파이썬으로 퀀트 프로그램 만들기 project' 카테고리의 다른 글
정규 표현식 실습 (0) | 2023.09.05 |
---|---|
정규 표현식(정규식) 종류 (0) | 2023.09.05 |
Python, MySQL - 시계열 데이터 처리를 위한 upsert 알아보기_1 (0) | 2023.08.24 |
pandas로 파이썬에 SQL사용하기 - 데이터 프레임을 SQL DB에 저장 (0) | 2023.08.24 |
pandas로 파이썬에 SQL사용하기 - DB에 접속하여 데이터 불러오기 (0) | 2023.08.24 |