티스토리 뷰
mysql의 replace 함수는 insert와 update를 동시에 한 것과 같은 기능이다.
테이블에 해당 raw가 없으면 insert를 해당 데이가 있다면 그 raw를 해당하는 데이터로 update 해준다.
데이터를 그룹적용할 때, 사용하면 효율적으로 사용할 수 있을 것 같다.
REPLACE INTO
mgr_alarm
(
manager_id,
hashkey_id,
event_id,
alarmtype_id
)
(
SELECT
#manager_id# AS manager_id,
#hashkey_id# AS hashkey_id,
ma.event_id,
ma.alarmtype_id
FROM mgr_alarm ma
INNER JOIN obj_event_set oes ON oes.hashkey_id = ma.hashkey_id AND oes.event_id = ma.event_id
INNER JOIN obj_rsc_key orks ON orks.hashkey_id = oes.hashkey_id AND orks.obj_id = #index# AND orks.managetype_id = #managetype_id# AND orks.rsctype_id = #rsctype_id# AND orks.rsc_id = #rsc_id# AND orks.rsc_key = #rsc_key#
INNER JOIN obj_event_set oest ON oest.hashkey_id = #hashkey_id# AND oest.event_id = ma.event_id
WHERE ma.manager_id = #condition_id#
)
그룹적용을 구현할 때 사용한 쿼리이다. 여기서 앞부분 괄호 안에는 replace할 column값들이 들어오고, 뒷부분 괄호에는 set해줄 값들을 넣어주는 부분이다.
그룹적용 할 값을 select해서 적용할 대상의 P.K(hashkey_id)로 바꿔치기 한 후 replace함수를 실행한 것이다.
이때 주의할 점은 set부분에서 join을 사용하여 select를 할 때, 외래키가 join table에 있을 경우엔 반드시 replace할 테이블의 raw가 join table에 미리 insert 되있어야 한다.
- Total
- Today
- Yesterday
- UIControl
- HLS
- RECORDING
- Swift
- AVKit
- NIB
- Video
- AVFoundation
- customAlertView
- permission error
- TDD
- testing
- BaseViewController
- ssh
- AssociatedObject
- m3u8
- carousel
- IOS
- Realm
- xib
- CollectionView
- Coordinator
- pagingView
- http live streaming
- UIButton
- UIBarButtonItem
- Design Pattern
- database
- Cleancode
- Closure
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |