32 lines
1.2 KiB
SQL
32 lines
1.2 KiB
SQL
UPDATE qipai_advertisements a
|
|
INNER JOIN qipai_media_assets current_asset
|
|
ON current_asset.tenant_id = a.tenant_id AND current_asset.id = a.image_asset_id
|
|
INNER JOIN (
|
|
SELECT tenant_id, checksum_sha256, MIN(id) AS retained_id
|
|
FROM qipai_media_assets
|
|
GROUP BY tenant_id, checksum_sha256
|
|
) duplicate_group
|
|
ON duplicate_group.tenant_id = current_asset.tenant_id
|
|
AND duplicate_group.checksum_sha256 = current_asset.checksum_sha256
|
|
SET a.image_asset_id = duplicate_group.retained_id
|
|
WHERE a.image_asset_id <> duplicate_group.retained_id;
|
|
|
|
DELETE duplicate_asset
|
|
FROM qipai_media_assets duplicate_asset
|
|
INNER JOIN (
|
|
SELECT tenant_id, checksum_sha256, MIN(id) AS retained_id
|
|
FROM qipai_media_assets
|
|
GROUP BY tenant_id, checksum_sha256
|
|
) duplicate_group
|
|
ON duplicate_group.tenant_id = duplicate_asset.tenant_id
|
|
AND duplicate_group.checksum_sha256 = duplicate_asset.checksum_sha256
|
|
WHERE duplicate_asset.id <> duplicate_group.retained_id;
|
|
|
|
ALTER TABLE qipai_media_assets
|
|
DROP INDEX uq_qipai_media_scope_checksum,
|
|
DROP COLUMN scope_store_id,
|
|
ADD UNIQUE KEY uq_qipai_media_tenant_checksum (tenant_id, checksum_sha256);
|
|
|
|
DELETE FROM qipai_schema_migrations
|
|
WHERE version = '2026081002';
|