-- 推广码表扩展:scene / qrcode_id / owner_user_id / remark / updated_at -- 已有数据会先回填 qrcode_id 再设 NOT NULL ALTER TABLE common_promo_code ADD COLUMN IF NOT EXISTS scene VARCHAR(32) NOT NULL DEFAULT 'ONLINE_LINK' AFTER name, ADD COLUMN IF NOT EXISTS qrcode_id VARCHAR(64) NULL AFTER scene, ADD COLUMN IF NOT EXISTS owner_user_id BIGINT UNSIGNED NULL AFTER status, ADD COLUMN IF NOT EXISTS remark VARCHAR(256) NULL AFTER owner_user_id, ADD COLUMN IF NOT EXISTS updated_at DATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) AFTER created_at; UPDATE common_promo_code SET qrcode_id = 'a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456' WHERE code = 'DKHQ001' AND (qrcode_id IS NULL OR qrcode_id = ''); UPDATE common_promo_code SET qrcode_id = 'b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678' WHERE code = 'DKDEMO1' AND (qrcode_id IS NULL OR qrcode_id = ''); UPDATE common_promo_code SET qrcode_id = LOWER(REPLACE(UUID(), '-', '')) WHERE qrcode_id IS NULL OR qrcode_id = ''; UPDATE common_promo_code SET updated_at = created_at WHERE updated_at IS NULL; ALTER TABLE common_promo_code MODIFY qrcode_id VARCHAR(64) NOT NULL;