-- 仓储表 C_* → c_*(小写 c 前缀) -- 不依赖 DELIMITER / 存储过程,Navicat、DMS、mysql 命令行均可整段执行 -- 可重复执行 -- -- 说明: -- 1) 若库已开启 lower_case_table_names(Windows/部分云库),建表时 C_sku 磁盘上已是 c_sku, -- 无需 RENAME,部署新代码即可;下方「诊断」应只看到 c_*。 -- 2) Linux 且区分大小写时,须经临时表名两步改名,否则可能报 Table 'c_sku' already exists。 -- 3) 执行前请确认已 USE 到业务库(DATABASE() 不能为 NULL)。 -- ========== 诊断(先看当前表名)========== SELECT TABLE_NAME AS warehouse_table FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND ( TABLE_NAME LIKE 'C\_%' ESCAPE '\\' OR TABLE_NAME LIKE 'c\_%' ESCAPE '\\' OR TABLE_NAME LIKE '\_\_oms\_ren\_%' ESCAPE '\\' ) ORDER BY TABLE_NAME; -- ========== 单表改名:大写 C_ 存在 → 临时名 → c_* ========== -- c_sku SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_sku'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_sku` TO `__oms_ren_sku`', 'SELECT ''skip: C_sku'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_sku'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_sku` TO `c_sku`', 'SELECT ''skip: __oms_ren_sku'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_bin_location SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_bin_location'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_bin_location` TO `__oms_ren_bin_location`', 'SELECT ''skip: C_bin_location'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_bin_location'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_bin_location` TO `c_bin_location`', 'SELECT ''skip: __oms_ren_bin_location'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_inventory SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_inventory'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_inventory` TO `__oms_ren_inventory`', 'SELECT ''skip: C_inventory'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_inventory'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_inventory` TO `c_inventory`', 'SELECT ''skip: __oms_ren_inventory'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_inbound_notice SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_inbound_notice'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_inbound_notice` TO `__oms_ren_inbound_notice`', 'SELECT ''skip: C_inbound_notice'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_inbound_notice'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_inbound_notice` TO `c_inbound_notice`', 'SELECT ''skip: __oms_ren_inbound_notice'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_inbound_box SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_inbound_box'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_inbound_box` TO `__oms_ren_inbound_box`', 'SELECT ''skip: C_inbound_box'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_inbound_box'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_inbound_box` TO `c_inbound_box`', 'SELECT ''skip: __oms_ren_inbound_box'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_inbound_box_line SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_inbound_box_line'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_inbound_box_line` TO `__oms_ren_inbound_box_line`', 'SELECT ''skip: C_inbound_box_line'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_inbound_box_line'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_inbound_box_line` TO `c_inbound_box_line`', 'SELECT ''skip: __oms_ren_inbound_box_line'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_parcel SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_parcel'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_parcel` TO `__oms_ren_parcel`', 'SELECT ''skip: C_parcel'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_parcel'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_parcel` TO `c_parcel`', 'SELECT ''skip: __oms_ren_parcel'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_parcel_arrival SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_parcel_arrival'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_parcel_arrival` TO `__oms_ren_parcel_arrival`', 'SELECT ''skip: C_parcel_arrival'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_parcel_arrival'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_parcel_arrival` TO `c_parcel_arrival`', 'SELECT ''skip: __oms_ren_parcel_arrival'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_parcel_item SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_parcel_item'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_parcel_item` TO `__oms_ren_parcel_item`', 'SELECT ''skip: C_parcel_item'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_parcel_item'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_parcel_item` TO `c_parcel_item`', 'SELECT ''skip: __oms_ren_parcel_item'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- c_sku_platform_map SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND BINARY TABLE_NAME = 'C_sku_platform_map'); SET @sql := IF(@need > 0, 'RENAME TABLE `C_sku_platform_map` TO `__oms_ren_sku_platform_map`', 'SELECT ''skip: C_sku_platform_map'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; SET @need := (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '__oms_ren_sku_platform_map'); SET @sql := IF(@need > 0, 'RENAME TABLE `__oms_ren_sku_platform_map` TO `c_sku_platform_map`', 'SELECT ''skip: __oms_ren_sku_platform_map'' AS info'); PREPARE _s FROM @sql; EXECUTE _s; DEALLOCATE PREPARE _s; -- ========== 执行后复查 ========== SELECT TABLE_NAME AS warehouse_table_after FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE 'c\_%' ESCAPE '\\' ORDER BY TABLE_NAME; -- ========== 若上面全是 skip 且已是 c_*:无需再改,直接部署后端即可 ========== -- 若仍残留 C_*(区分大小写 Linux),可手工一次性执行(会失败则勿重复跑): -- RENAME TABLE -- `C_sku` TO `__oms_ren_sku`, `C_bin_location` TO `__oms_ren_bin_location`, -- `C_inventory` TO `__oms_ren_inventory`, `C_inbound_notice` TO `__oms_ren_inbound_notice`, -- `C_inbound_box` TO `__oms_ren_inbound_box`, `C_inbound_box_line` TO `__oms_ren_inbound_box_line`, -- `C_parcel` TO `__oms_ren_parcel`, `C_parcel_arrival` TO `__oms_ren_parcel_arrival`, -- `C_parcel_item` TO `__oms_ren_parcel_item`, `C_sku_platform_map` TO `__oms_ren_sku_platform_map`; -- RENAME TABLE -- `__oms_ren_sku` TO `c_sku`, `__oms_ren_bin_location` TO `c_bin_location`, -- `__oms_ren_inventory` TO `c_inventory`, `__oms_ren_inbound_notice` TO `c_inbound_notice`, -- `__oms_ren_inbound_box` TO `c_inbound_box`, `__oms_ren_inbound_box_line` TO `c_inbound_box_line`, -- `__oms_ren_parcel` TO `c_parcel`, `__oms_ren_parcel_arrival` TO `c_parcel_arrival`, -- `__oms_ren_parcel_item` TO `c_parcel_item`, `__oms_ren_sku_platform_map` TO `c_sku_platform_map`;