-- 为 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;