95 lines
2.8 KiB
MySQL
95 lines
2.8 KiB
MySQL
|
|
-- ============================================================
|
|||
|
|
-- V4: 为AI任务表添加图片参数支持(修复版)
|
|||
|
|
-- 描述: 支持图生视频功能,允许用户上传参考图片
|
|||
|
|
-- 作者: 1818AI
|
|||
|
|
-- 日期: 2025-10-20
|
|||
|
|
-- ============================================================
|
|||
|
|
|
|||
|
|
-- 指定数据库
|
|||
|
|
USE `1818ai`;
|
|||
|
|
|
|||
|
|
-- 1. 添加 image_url 字段(如果不存在)
|
|||
|
|
SET @col_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'ai_task'
|
|||
|
|
AND COLUMN_NAME = 'image_url'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
SET @sql = IF(@col_exists = 0,
|
|||
|
|
'ALTER TABLE `ai_task` ADD COLUMN `image_url` VARCHAR(500) NULL COMMENT ''参考图片URL(用于图生视频)'' AFTER `prompt`',
|
|||
|
|
'SELECT ''Column image_url already exists'' AS info'
|
|||
|
|
);
|
|||
|
|
PREPARE stmt FROM @sql;
|
|||
|
|
EXECUTE stmt;
|
|||
|
|
DEALLOCATE PREPARE stmt;
|
|||
|
|
|
|||
|
|
-- 2. 添加 image_base64 字段(如果不存在)
|
|||
|
|
SET @col_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'ai_task'
|
|||
|
|
AND COLUMN_NAME = 'image_base64'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
SET @sql = IF(@col_exists = 0,
|
|||
|
|
'ALTER TABLE `ai_task` ADD COLUMN `image_base64` TEXT NULL COMMENT ''参考图片Base64编码(用于图生视频)'' AFTER `image_url`',
|
|||
|
|
'SELECT ''Column image_base64 already exists'' AS info'
|
|||
|
|
);
|
|||
|
|
PREPARE stmt FROM @sql;
|
|||
|
|
EXECUTE stmt;
|
|||
|
|
DEALLOCATE PREPARE stmt;
|
|||
|
|
|
|||
|
|
-- 3. 添加 aspect_ratio 字段(如果不存在)
|
|||
|
|
SET @col_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'ai_task'
|
|||
|
|
AND COLUMN_NAME = 'aspect_ratio'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
SET @sql = IF(@col_exists = 0,
|
|||
|
|
'ALTER TABLE `ai_task` ADD COLUMN `aspect_ratio` VARCHAR(10) NULL COMMENT ''图片宽高比(如2:3, 3:2, 1:1)'' AFTER `image_base64`',
|
|||
|
|
'SELECT ''Column aspect_ratio already exists'' AS info'
|
|||
|
|
);
|
|||
|
|
PREPARE stmt FROM @sql;
|
|||
|
|
EXECUTE stmt;
|
|||
|
|
DEALLOCATE PREPARE stmt;
|
|||
|
|
|
|||
|
|
-- 4. 添加索引(如果不存在)
|
|||
|
|
SET @index_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.STATISTICS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'ai_task'
|
|||
|
|
AND INDEX_NAME = 'idx_task_type'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
SET @sql = IF(@index_exists = 0,
|
|||
|
|
'CREATE INDEX `idx_task_type` ON `ai_task`(`task_type`)',
|
|||
|
|
'SELECT ''Index idx_task_type already exists'' AS info'
|
|||
|
|
);
|
|||
|
|
PREPARE stmt FROM @sql;
|
|||
|
|
EXECUTE stmt;
|
|||
|
|
DEALLOCATE PREPARE stmt;
|
|||
|
|
|
|||
|
|
-- 5. 验证字段是否添加成功
|
|||
|
|
SELECT
|
|||
|
|
COLUMN_NAME,
|
|||
|
|
COLUMN_TYPE,
|
|||
|
|
IS_NULLABLE,
|
|||
|
|
COLUMN_COMMENT
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'ai_task'
|
|||
|
|
AND COLUMN_NAME IN ('image_url', 'image_base64', 'aspect_ratio')
|
|||
|
|
ORDER BY ORDINAL_POSITION;
|
|||
|
|
|
|||
|
|
-- ============================================================
|
|||
|
|
-- V4脚本结束
|
|||
|
|
-- ============================================================
|
|||
|
|
|