Files
yunzerwebsiteallinone/sql/alter_contact_add_qq.sql
T

43 lines
1.6 KiB
SQL

-- 通讯录表新增 QQ 字段
-- 对应模型:go/models/contact.go BackendErpContact
--
-- 说明:历史迁移 alter_contact_rename_to_global.sql 把表名从 yz_backend_erp_contact
-- 改名为 yz_backend_contact,但模型 BackendErpContact.TableName() 仍返回旧表名。
-- 为避免不同环境表名不一致导致字段加不上,这里按实际存在的表逐个补齐,可重复执行。
SET @db := DATABASE();
-- 旧表名(模型当前使用的表名)
SET @tbl := 'yz_backend_erp_contact';
SET @table_exists := (
SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl
);
SET @column_exists := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl AND COLUMN_NAME = 'qq'
);
SET @sql := IF(@table_exists > 0 AND @column_exists = 0,
CONCAT('ALTER TABLE `', @tbl, '` ADD COLUMN `qq` VARCHAR(20) NULL COMMENT ''QQ号'' AFTER `wechat`'),
'SELECT 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 新表名(执行过改名迁移的环境)
SET @tbl := 'yz_backend_contact';
SET @table_exists := (
SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl
);
SET @column_exists := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @tbl AND COLUMN_NAME = 'qq'
);
SET @sql := IF(@table_exists > 0 AND @column_exists = 0,
CONCAT('ALTER TABLE `', @tbl, '` ADD COLUMN `qq` VARCHAR(20) NULL COMMENT ''QQ号'' AFTER `wechat`'),
'SELECT 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;