Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
-- 'trade_item'에 '실 거래중량' 추가를 위한 flyway sql

-- set column: 'trade_item' 테이블에 'net_payload_weight' 컬럼 추가. 이때 기본적으로 null은 허용 (이미 데이터 존재하므로)
ALTER TABLE trade_item ADD COLUMN IF NOT EXISTS net_payload_weight DECIMAL(19,2);
SET @col_exists = (
SELECT COUNT(*)
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'trade_item'
AND column_name = 'net_payload_weight'
);
SET @sql = IF(@col_exists = 0,
'ALTER TABLE trade_item ADD COLUMN net_payload_weight DECIMAL(19,2)',
'SELECT 1'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- backfill: 'trade_item'의 'net_payload_weight' 컬럼에서, null인 값들을 (weight-weight_loss)로 채우기. 이때 weight_loss가 null이면 0으로 계산 --
UPDATE trade_item
SET net_payload_weight = weight - COALESCE(weight_loss, 0)
WHERE net_payload_weight IS NULL;

-- enforce constraint: backfill 완료 후 net_payload_weight는 항상 값이 존재해야 하므로 NOT NULL 제약을 적용
ALTER TABLE trade_item MODIFY COLUMN net_payload_weight DECIMAL(19,2) NOT NULL;
ALTER TABLE trade_item MODIFY COLUMN net_payload_weight DECIMAL(19,2) NOT NULL;
Loading