mysql 重复执行_有关MySql编写可重复执行的sql(主要用于部署升级等)

本文介绍了如何在MySQL中创建可重复执行的SQL语句,特别是在系统部署和升级过程中。通过存储过程和条件判断避免DDL和DML操作时的错误。包括修改表名、添加、删除和修改列,以及DML语句如INSERT的处理方法。
摘要由CSDN通过智能技术生成

在系统部署时候经常有sql提交,然而像ddl,dml文件重复执行则会报错,此篇文章是在网上搜罗了一些的常见情况的解决方法。

一、操作表的语句

对表进行操作,需要编写存储过程来进行判断后再进行操作。在information_schema表中数据进行判断,使用了select database()方法查询当前使用数据库(因为information_schema查询出来是所有数据库的信息)

操作

SQL语句

修改表名

alter table t_book rename to bbb;

添加列

alter table 表名 add column 列名 varchar(30);

删除列

alter table 表名 drop column 列名;

修改列名

alter table bbb change nnnnn hh int;

修改列属性

alter table t_book modify name varchar(22);

存储过程

删除列

--删除列

drop PROCEDURE if EXISTS add_col_homework;

create procedure add_col_homework() BEGIN

IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA in (select database()) AND table_name='mytable' AND COLUMN_NAME='mycolumn')

THEN

ALTER TABLE `mytable` DROP COLUMN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值