-- 数据库补充SQL(如果表已存在,使用此脚本添加缺失的字段) -- 注意:如果表不存在,请先执行 init_database.sql USE Simple_CA; -- 为certificates表添加证书内容字段和序列号字段(如果不存在) SET @dbname = DATABASE(); SET @tablename = "certificates"; SET @columnname = "certificate_content"; 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 `certificate_content` TEXT NULL COMMENT '证书内容(PEM格式)' AFTER `expire_time`") )); PREPARE alterIfNotExists FROM @preparedStatement; EXECUTE alterIfNotExists; DEALLOCATE PREPARE alterIfNotExists; SET @columnname = "serial_number"; 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 `serial_number` VARCHAR(64) NULL COMMENT '证书序列号' AFTER `certificate_content`") )); PREPARE alterIfNotExists FROM @preparedStatement; EXECUTE alterIfNotExists; DEALLOCATE PREPARE alterIfNotExists; -- 为ca_requests表添加CSR文件内容字段(如果不存在) SET @tablename = "ca_requests"; SET @columnname = "csr_content"; 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 `csr_content` TEXT NULL COMMENT 'CSR文件内容' AFTER `public_key`") )); PREPARE alterIfNotExists FROM @preparedStatement; EXECUTE alterIfNotExists; DEALLOCATE PREPARE alterIfNotExists;