All checks were successful
Build and Deploy / deploy (push) Successful in 1m49s
Co-authored-by: Cursor <cursoragent@cursor.com>
99 lines
3.5 KiB
SQL
99 lines
3.5 KiB
SQL
-- 存量库:客户出口资质备案表(含 IsDefault / Remark)
|
||
-- 可重复执行。
|
||
-- 目标表:t_customer_export_qualification
|
||
|
||
SET @db := DATABASE();
|
||
|
||
-- 1) 表不存在则整表创建
|
||
SET @exists := (
|
||
SELECT COUNT(1)
|
||
FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = @db
|
||
AND TABLE_NAME = 't_customer_export_qualification'
|
||
);
|
||
|
||
SET @sql := IF(
|
||
@exists = 0,
|
||
'CREATE TABLE `t_customer_export_qualification` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
|
||
`CustomerId` INT NOT NULL COMMENT ''归属客户 t_customer.Id'',
|
||
`CompanyName` VARCHAR(200) NOT NULL COMMENT ''企业名称'',
|
||
`SocialCreditCode` VARCHAR(64) NOT NULL COMMENT ''企业社会信用代码'',
|
||
`DomesticConsignor` VARCHAR(200) NOT NULL COMMENT ''境内发货人'',
|
||
`DomesticConsignorCustomsCode` VARCHAR(64) NULL COMMENT ''境内发货人海关代码'',
|
||
`ProducerName` VARCHAR(200) NOT NULL COMMENT ''生产销售单位'',
|
||
`ProducerCustomsCode` VARCHAR(64) NULL COMMENT ''生产销售单位海关代码'',
|
||
`CustomsPort` VARCHAR(100) NULL COMMENT ''备案海关港口地'',
|
||
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT ''是否默认:0-否,1-是(同客户仅一条)'',
|
||
`Remark` VARCHAR(512) NULL COMMENT ''备注'',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT ''软删除:0-否,1-是'',
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT ''并发戳'',
|
||
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT ''创建人'',
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ''创建时间'',
|
||
`UpdateUserId` INT NULL COMMENT ''更新人'',
|
||
`UpdateTime` DATETIME NULL COMMENT ''更新时间'',
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_ceq_customer` (`CustomerId`, `IsDeleted`, `Id`),
|
||
KEY `idx_ceq_credit` (`SocialCreditCode`, `IsDeleted`),
|
||
KEY `idx_ceq_customer_default` (`CustomerId`, `IsDefault`)
|
||
) COMMENT=''客户出口资质备案''',
|
||
'SELECT ''t_customer_export_qualification already exists'' AS info'
|
||
);
|
||
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|
||
|
||
-- 2) 已建表但缺 IsDefault 时补列
|
||
SET @col := (
|
||
SELECT COUNT(1)
|
||
FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = @db
|
||
AND TABLE_NAME = 't_customer_export_qualification'
|
||
AND COLUMN_NAME = 'IsDefault'
|
||
);
|
||
SET @sql := IF(
|
||
@col = 0,
|
||
'ALTER TABLE `t_customer_export_qualification`
|
||
ADD COLUMN `IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT ''是否默认:0-否,1-是(同客户仅一条)'' AFTER `CustomsPort`',
|
||
'SELECT ''IsDefault already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|
||
|
||
-- 3) 已建表但缺 Remark 时补列
|
||
SET @col := (
|
||
SELECT COUNT(1)
|
||
FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = @db
|
||
AND TABLE_NAME = 't_customer_export_qualification'
|
||
AND COLUMN_NAME = 'Remark'
|
||
);
|
||
SET @sql := IF(
|
||
@col = 0,
|
||
'ALTER TABLE `t_customer_export_qualification`
|
||
ADD COLUMN `Remark` VARCHAR(512) NULL COMMENT ''备注'' AFTER `IsDefault`',
|
||
'SELECT ''Remark already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|
||
|
||
-- 4) 默认索引
|
||
SET @idx := (
|
||
SELECT COUNT(1)
|
||
FROM information_schema.STATISTICS
|
||
WHERE TABLE_SCHEMA = @db
|
||
AND TABLE_NAME = 't_customer_export_qualification'
|
||
AND INDEX_NAME = 'idx_ceq_customer_default'
|
||
);
|
||
SET @sql := IF(
|
||
@idx = 0,
|
||
'ALTER TABLE `t_customer_export_qualification` ADD KEY `idx_ceq_customer_default` (`CustomerId`, `IsDefault`)',
|
||
'SELECT ''idx_ceq_customer_default already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|