54 lines
1.8 KiB
SQL
54 lines
1.8 KiB
SQL
-- 为 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;
|
||
|