mysql 可重复执行添加列

DROP PROCEDURE IF EXISTS `add_column_if`;

CREATE PROCEDURE `add_column_if`(IN v_table varchar(50), IN v_column varchar(50),IN v_discription varchar(1000))
begin
  declare stmt         varchar(2000);
  declare v_flag     int;

  select count(*) into v_flag from information_schema.columns where table_schema = (select DATABASE()) and table_name = v_table and column_name = v_column;
  if(v_flag=0)
  then
    set @sqlstr = concat(‘ALTER TABLE `‘,v_table,‘` ADD COLUMN `‘,v_column,‘` ‘,v_discription);
    prepare stmt from @sqlstr;
    execute stmt;
    end if;
  commit;
end ;

调用:

call add_column_if(‘xxx‘,‘xxx‘,‘xxx‘);
时间: 2024-10-24 20:19:45

mysql 可重复执行添加列的相关文章

MySQL 添加列, 修改列, 删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

MySQL 添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

Mysql下在某一列后即表的某一位置添加新列的sql语句

Mysql简介 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.  Mysql ALTER TABLE详细语法 ALTER TABLE用于更改原有表的结构.例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表.您还可以更改表的评注和表的类型.ww

MySQL 语句大全--------添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

MyBaits基本操作,为什么session.commit()可以引起事物提交?ResultMap结果映射,执行添加后返回自增列的值,多条件查询,智能标签,工具类

1.为什么session.commit()可以引起事务的提交? 首先打开commit()源码,ctrl+H打开它的实现类DefaultSession,找到它的commit方法 ctrl+左键executor,进入它的接口并打开它的实现类BaseExecutor 在最底层的commit()方法里边进行了事务的提交,所以SqlSession.commit()方法可以引起事务的提交 2.ResultMap结果映射 为什么需要ResultMap? 因为DB中的Table的列名和Java对象中的属性名不一

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回.如果没有在语句中指定某一个子句,那么将会跳过相应的步骤. 下面我们来具体分析一下查询处理的每一个阶段 FORM: 对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 ON: 对虚表VT1进行ON筛选,只有那些符合<join-condit

MySQL 处理重复数据

有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 本博文我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据. 防止表中出现重复数据 你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性. 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录. CREATE TABLE person_tbl ( first_name CH

MySQL索引及执行计划

MySQL索引及执行计划 索引 合理的建立索引可以加快数据查询,例如,学校图书管为每一本书编号,根据编号可以快速锁定一本书所在位置.MySQL索引默认B+树索引.索引虽然能够提高检索效率,但同时也会降低更新的速度,因为insert .update.delete也会操作索引文件,会调整因为更新等操作带来的键值变化后的索引信息. 索引类型 主键索引:唯一索引,并且并指定为primary key,每个表中只能有一个主键 唯一索引:索引列的所有值都只能出现一次,即值必须唯一,值可以为空 普通索引:基本的