Files
sbnews/docs/sql/production_remaining_20260803.sql
T

121 lines
5.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 生产库增量 SQL2026-08-03
-- 已排除:社区菜单、帖子分类及其权限 SQL。
-- 本脚本可重复执行,不会删除既有表或数据。
-- ============================================================
-- 1. 社区帖子推荐排序字段与索引
-- ============================================================
SET @has_post_sort = (
SELECT COUNT(*)
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'la_community_post'
AND `column_name` = 'sort'
);
SET @sql = IF(
@has_post_sort = 0,
'ALTER TABLE `la_community_post` ADD COLUMN `sort` int unsigned NOT NULL DEFAULT 0 COMMENT ''推荐流排序值,越大越靠前'' AFTER `is_topic`',
'SELECT ''la_community_post.sort already exists'''
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @has_recommend_sort_index = (
SELECT COUNT(*)
FROM `information_schema`.`statistics`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'la_community_post'
AND `index_name` = 'idx_status_recommend_sort'
);
SET @sql = IF(
@has_recommend_sort_index = 0,
'ALTER TABLE `la_community_post` ADD INDEX `idx_status_recommend_sort` (`status`, `is_recommend`, `sort`, `create_time`)',
'SELECT ''la_community_post.idx_status_recommend_sort already exists'''
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- ============================================================
-- 2. 联赛热门配置字段
-- ============================================================
SET @schema_name = DATABASE();
SET @has_is_hot = (
SELECT COUNT(*)
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_SCHEMA` = @schema_name
AND `TABLE_NAME` = 'la_league'
AND `COLUMN_NAME` = 'is_hot'
);
SET @alter_sql = IF(
@has_is_hot = 0,
'ALTER TABLE `la_league` ADD COLUMN `is_hot` tinyint unsigned NOT NULL DEFAULT 0 COMMENT ''是否热门联赛: 0=否 1=是'' AFTER `is_show`',
'SELECT ''la_league.is_hot already exists'''
);
PREPARE alter_stmt FROM @alter_sql;
EXECUTE alter_stmt;
DEALLOCATE PREPARE alter_stmt;
-- ============================================================
-- 3. 加密行情自选表及行情配置
-- ============================================================
CREATE TABLE IF NOT EXISTS `la_crypto_favorite` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户ID',
`symbol` varchar(20) NOT NULL DEFAULT '' COMMENT '币种代码',
`status` tinyint UNSIGNED NOT NULL DEFAULT 1 COMMENT '自选状态 0-取消 1-自选',
`create_time` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
`delete_time` int NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_symbol` (`user_id`, `symbol`),
KEY `idx_user_status` (`user_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户加密行情自选表';
INSERT INTO `la_config` (`type`, `name`, `value`, `create_time`, `update_time`)
SELECT 'crypto_market', 'api_base', 'https://api.coingecko.com/api/v3', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_config` WHERE `type` = 'crypto_market' AND `name` = 'api_base'
);
INSERT INTO `la_config` (`type`, `name`, `value`, `create_time`, `update_time`)
SELECT 'crypto_market', 'cache_seconds', '60', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_config` WHERE `type` = 'crypto_market' AND `name` = 'cache_seconds'
);
SET @crypto_market_coins = JSON_ARRAY(
JSON_OBJECT('id', 'bitcoin', 'symbol', 'BTC', 'name_zh', '比特币'),
JSON_OBJECT('id', 'ethereum', 'symbol', 'ETH', 'name_zh', '以太坊'),
JSON_OBJECT('id', 'binancecoin', 'symbol', 'BNB', 'name_zh', '币安币'),
JSON_OBJECT('id', 'solana', 'symbol', 'SOL', 'name_zh', 'Solana'),
JSON_OBJECT('id', 'ripple', 'symbol', 'XRP', 'name_zh', '瑞波币'),
JSON_OBJECT('id', 'cardano', 'symbol', 'ADA', 'name_zh', '艾达币'),
JSON_OBJECT('id', 'dogecoin', 'symbol', 'DOGE', 'name_zh', '狗狗币'),
JSON_OBJECT('id', 'tron', 'symbol', 'TRX', 'name_zh', '波场'),
JSON_OBJECT('id', 'avalanche-2', 'symbol', 'AVAX', 'name_zh', 'Avalanche'),
JSON_OBJECT('id', 'chainlink', 'symbol', 'LINK', 'name_zh', 'Chainlink'),
JSON_OBJECT('id', 'the-open-network', 'symbol', 'TON', 'name_zh', 'Toncoin'),
JSON_OBJECT('id', 'shiba-inu', 'symbol', 'SHIB', 'name_zh', '柴犬币'),
JSON_OBJECT('id', 'polkadot', 'symbol', 'DOT', 'name_zh', '波卡币'),
JSON_OBJECT('id', 'sui', 'symbol', 'SUI', 'name_zh', 'Sui'),
JSON_OBJECT('id', 'near', 'symbol', 'NEAR', 'name_zh', 'NEAR'),
JSON_OBJECT('id', 'litecoin', 'symbol', 'LTC', 'name_zh', '莱特币'),
JSON_OBJECT('id', 'bitcoin-cash', 'symbol', 'BCH', 'name_zh', '比特币现金'),
JSON_OBJECT('id', 'uniswap', 'symbol', 'UNI', 'name_zh', 'Uniswap'),
JSON_OBJECT('id', 'aave', 'symbol', 'AAVE', 'name_zh', 'Aave'),
JSON_OBJECT('id', 'ethereum-classic', 'symbol', 'ETC', 'name_zh', '以太坊经典')
);
INSERT INTO `la_config` (`type`, `name`, `value`, `create_time`, `update_time`)
SELECT 'crypto_market', 'coins', CAST(@crypto_market_coins AS CHAR), UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_config` WHERE `type` = 'crypto_market' AND `name` = 'coins'
);
UPDATE `la_decorate_tabbar`
SET `name` = '行情', `update_time` = UNIX_TIMESTAMP()
WHERE `link` LIKE '%pages%crypto%crypto%'
AND `name` <> '行情';