81 lines
2.0 KiB
MySQL
81 lines
2.0 KiB
MySQL
|
|
-- =============================================
|
|||
|
|
-- 数据库迁移脚本:为 member_driver 表添加 id_card 字段
|
|||
|
|
-- 用途:存储司机身份证前后面照片地址
|
|||
|
|
-- 创建时间:2025-10-20
|
|||
|
|
-- 数据库:MySQL
|
|||
|
|
-- 版本:安全版本(包含错误处理)
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- 开始事务
|
|||
|
|
START TRANSACTION;
|
|||
|
|
|
|||
|
|
-- 检查表是否存在
|
|||
|
|
SET @table_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.TABLES
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'member_driver'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
-- 如果表不存在,回滚并退出
|
|||
|
|
IF @table_exists = 0 THEN
|
|||
|
|
ROLLBACK;
|
|||
|
|
SELECT 'ERROR: member_driver 表不存在' AS result;
|
|||
|
|
LEAVE;
|
|||
|
|
END IF;
|
|||
|
|
|
|||
|
|
-- 检查字段是否已存在
|
|||
|
|
SET @column_exists = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'member_driver'
|
|||
|
|
AND COLUMN_NAME = 'id_card'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
-- 如果字段已存在,回滚并退出
|
|||
|
|
IF @column_exists > 0 THEN
|
|||
|
|
ROLLBACK;
|
|||
|
|
SELECT 'WARNING: id_card 字段已存在,无需添加' AS result;
|
|||
|
|
LEAVE;
|
|||
|
|
END IF;
|
|||
|
|
|
|||
|
|
-- 添加 id_card 字段
|
|||
|
|
ALTER TABLE member_driver
|
|||
|
|
ADD COLUMN id_card TEXT COMMENT '身份证前后面照片地址(多个URL用逗号分隔)'
|
|||
|
|
AFTER car_img;
|
|||
|
|
|
|||
|
|
-- 验证字段是否添加成功
|
|||
|
|
SET @verify_result = (
|
|||
|
|
SELECT COUNT(*)
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'member_driver'
|
|||
|
|
AND COLUMN_NAME = 'id_card'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
-- 如果验证失败,回滚
|
|||
|
|
IF @verify_result = 0 THEN
|
|||
|
|
ROLLBACK;
|
|||
|
|
SELECT 'ERROR: id_card 字段添加失败' AS result;
|
|||
|
|
LEAVE;
|
|||
|
|
END IF;
|
|||
|
|
|
|||
|
|
-- 提交事务
|
|||
|
|
COMMIT;
|
|||
|
|
|
|||
|
|
-- 显示成功信息
|
|||
|
|
SELECT 'SUCCESS: id_card 字段添加成功' AS result;
|
|||
|
|
|
|||
|
|
-- 显示字段信息
|
|||
|
|
SELECT
|
|||
|
|
COLUMN_NAME as '字段名',
|
|||
|
|
DATA_TYPE as '数据类型',
|
|||
|
|
IS_NULLABLE as '允许空值',
|
|||
|
|
COLUMN_DEFAULT as '默认值',
|
|||
|
|
COLUMN_COMMENT as '注释'
|
|||
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|||
|
|
AND TABLE_NAME = 'member_driver'
|
|||
|
|
AND COLUMN_NAME = 'id_card';
|