This commit is contained in:
张成
2025-12-15 18:36:20 +08:00
parent c083494fce
commit 6e5c35f144
15 changed files with 867 additions and 8 deletions

View File

@@ -0,0 +1,53 @@
-- 为 pla_account 表添加授权相关字段
-- 执行时间2025-01-XX
-- 说明:添加授权日期和授权天数字段,用于控制账号的使用期限
-- 检查并添加授权日期字段
SET @dbname = DATABASE();
SET @tablename = 'pla_account';
SET @columnname = 'authorization_date';
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE
(TABLE_SCHEMA = @dbname)
AND (TABLE_NAME = @tablename)
AND (COLUMN_NAME = @columnname)
) > 0,
'SELECT 1', -- 字段已存在,不执行任何操作
CONCAT('ALTER TABLE `', @tablename, '` ADD COLUMN `', @columnname, '` DATETIME NULL COMMENT ''授权日期(授权开始时间)'' AFTER `active_actions`;')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;
-- 检查并添加授权天数字段
SET @columnname = 'authorization_days';
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE
(TABLE_SCHEMA = @dbname)
AND (TABLE_NAME = @tablename)
AND (COLUMN_NAME = @columnname)
) > 0,
'SELECT 1', -- 字段已存在,不执行任何操作
CONCAT('ALTER TABLE `', @tablename, '` ADD COLUMN `', @columnname, '` INT(11) NOT NULL DEFAULT 0 COMMENT ''授权天数'' AFTER `authorization_date`;')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;
-- 验证字段是否添加成功
SELECT
COLUMN_NAME AS '字段名',
DATA_TYPE AS '数据类型',
IS_NULLABLE AS '允许NULL',
COLUMN_DEFAULT AS '默认值',
COLUMN_COMMENT AS '注释'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'pla_account'
AND COLUMN_NAME IN ('authorization_date', 'authorization_days')
ORDER BY ORDINAL_POSITION;

View File

@@ -0,0 +1,12 @@
-- 为 pla_account 表添加授权相关字段(简化版)
-- 执行时间2025-01-XX
-- 说明:如果字段已存在会报错,可以先执行上面的版本(带检查的版本)
-- 添加授权日期字段
ALTER TABLE `pla_account`
ADD COLUMN `authorization_date` DATETIME NULL COMMENT '授权日期(授权开始时间)' AFTER `active_actions`;
-- 添加授权天数字段
ALTER TABLE `pla_account`
ADD COLUMN `authorization_days` INT(11) NOT NULL DEFAULT 0 COMMENT '授权天数' AFTER `authorization_date`;