41 lines
1.8 KiB
SQL
41 lines
1.8 KiB
SQL
-- 客户主表增加合同开始时间、合同结束时间
|
|
-- 供应商只增加合同结束时间;合同开始时间与原有合作开始日期重复,已有列则删除
|
|
-- 客户列已存在时不要重复执行前面的 ALTER
|
|
SET NAMES utf8mb4;
|
|
|
|
-- 先去掉供应商上后加的合同开始时间,避免后续语句失败时这一列还留着
|
|
SET @has_supplier_contract_start := (
|
|
SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'sup_supplier'
|
|
AND COLUMN_NAME = 'contract_start_date'
|
|
);
|
|
SET @drop_supplier_contract_start := IF(
|
|
@has_supplier_contract_start > 0,
|
|
'ALTER TABLE sup_supplier DROP COLUMN contract_start_date',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE drop_supplier_contract_start_stmt FROM @drop_supplier_contract_start;
|
|
EXECUTE drop_supplier_contract_start_stmt;
|
|
DEALLOCATE PREPARE drop_supplier_contract_start_stmt;
|
|
|
|
ALTER TABLE ctr_customer
|
|
ADD COLUMN contract_start_date date DEFAULT NULL COMMENT '合同开始时间' AFTER credit_ed,
|
|
ADD COLUMN contract_end_date date DEFAULT NULL COMMENT '合同结束时间' AFTER contract_start_date;
|
|
|
|
-- 供应商原有合作开始日期,只补合同结束时间(已有则跳过)
|
|
SET @has_supplier_contract_end := (
|
|
SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'sup_supplier'
|
|
AND COLUMN_NAME = 'contract_end_date'
|
|
);
|
|
SET @add_supplier_contract_end := IF(
|
|
@has_supplier_contract_end = 0,
|
|
'ALTER TABLE sup_supplier ADD COLUMN contract_end_date date DEFAULT NULL COMMENT ''合同结束时间'' AFTER cooperation_start_date',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE add_supplier_contract_end_stmt FROM @add_supplier_contract_end;
|
|
EXECUTE add_supplier_contract_end_stmt;
|
|
DEALLOCATE PREPARE add_supplier_contract_end_stmt;
|