-- 解决Multiple primary key defined错误的脚本

-- 1. 检查是否存在label_replace_requests表
SELECT COUNT(*) AS table_exists FROM information_schema.tables 
WHERE table_schema = 'tms64shltusa' AND table_name = 'label_replace_requests';

-- 2. 如果表存在，查看其结构
SHOW CREATE TABLE IF EXISTS `tms64shltusa`.`label_replace_requests`;

-- 3. 查看主键定义
SHOW INDEX FROM `tms64shltusa`.`label_replace_requests` WHERE Key_name = 'PRIMARY';

-- 4. 解决方案1：如果表结构有问题，删除后重新创建
-- DROP TABLE IF EXISTS `tms64shltusa`.`label_replace_requests`;
-- 
-- CREATE TABLE IF NOT EXISTS `tms64shltusa`.`label_replace_requests` (
--   `Id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID，自增',
--   `BillOfLadingNumber` VARCHAR(100) NULL COMMENT '提单号',
--   `MasterPackageNumber` VARCHAR(100) NULL COMMENT '大包号',
--   `ReferenceNumber` VARCHAR(100) NULL COMMENT '参考号（一般表示订单号）',
--   `NeutralWaybillNumber` VARCHAR(100) NOT NULL COMMENT '中性面单单号（必填）',
--   `FinalMileTrackingNumber` VARCHAR(100) NULL COMMENT '尾程跟踪单号',
--   `Label` LONGTEXT NULL COMMENT '标签内容（一般为PDF，可能是base64或其他格式）',
--   `ReplaceStatus` CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '换单状态（Y表示正常换单，N表示冻结换单）',
--   `CreatedAt` DATETIME NOT NULL COMMENT '创建时间',
--   `UpdatedAt` DATETIME NOT NULL COMMENT '更新时间',
--   INDEX `idx_neutral_waybill_number` (`NeutralWaybillNumber`),
--   INDEX `idx_created_at` (`CreatedAt`),
--   INDEX `idx_replace_status` (`ReplaceStatus`)
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 5. 解决方案2：如果只是主键重复，移除多余的主键
-- 先查看所有索引
-- SHOW INDEX FROM `tms64shltusa`.`label_replace_requests`;
-- 
-- 然后根据结果移除多余的主键
-- ALTER TABLE `tms64shltusa`.`label_replace_requests` DROP PRIMARY KEY;
-- ALTER TABLE `tms64shltusa`.`label_replace_requests` ADD PRIMARY KEY (`Id`);

-- 6. 验证修复结果
SELECT COUNT(*) AS primary_key_count FROM information_schema.statistics 
WHERE table_schema = 'tms64shltusa' AND table_name = 'label_replace_requests' AND index_name = 'PRIMARY';