存储过程 某个表已存在异常

本文介绍了一种使用MySQL存储过程自动创建销售员位置表的方法。该表包含销售人员的工号、所在分行代码等信息,并根据当前日期动态生成表名。

CREATE DEFINER=`ggs`@`%` PROCEDURE `auto_create_salesman_location`()
BEGIN
DECLARE table_prefix VARCHAR(100);
DECLARE table_suffix BIGINT;
DECLARE table_name VARCHAR(100);
DECLARE sql_text VARCHAR(4000);
#异常捕获
DECLARE ER_TABLE_EXISTS_ERROR CONDITION for 1050;
DECLARE EXIT HANDLER FOR ER_TABLE_EXISTS_ERROR SELECT CONCAT('ERROR: ',table_name,'已经存在');

SET table_prefix = 'salesman_location';
SET table_suffix = DATE_FORMAT(DATE_ADD(curdate(), INTERVAL 1 DAY),'%Y%m%d');
SET table_name = CONCAT(table_prefix,'_',table_suffix);

set sql_text=CONCAT(
'create table ',table_name,
'(branch_code int(11) NOT NULL,
salesman_code int(11) NOT NULL,
telphone char(11) NOT NULL,
longitude varchar(20) DEFAULT NULL,
latitude varchar(20) DEFAULT NULL,
height double DEFAULT NULL,
location_create_time datetime DEFAULT NULL,
create_time datetime DEFAULT NULL,
KEY location_index (branch_code,salesman_code) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
);
set @sql_pre=sql_text;
PREPARE sql_exec from @sql_pre;
EXECUTE sql_exec;
deallocate prepare sql_exec;
END

转载于:https://www.cnblogs.com/tonggc1668/p/7815034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值