sql可重复执行语句例子
2015-12-24 11:23
330 查看
1.添加字段
SET @add__on_admin = (SELECT IF(
(SELECT count(1)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'admin'
AND table_schema = DATABASE()
AND column_name = 'lft'
) > 0,
"select 'admin exist lft'",
"alter table admin add column lft int(11) unsigned COMMENT '树形结构使用'; "
));
PREPARE stmt FROM @add_lft_on_admin;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 可重复性添加索引
DROP PROCEDURE IF EXISTS add_index_to_macc_stalog_1;
DELIMITER //
CREATE PROCEDURE add_index_to_macc_stalog_1() BEGIN
DECLARE CurrentDatabase VARCHAR(250);
SELECT DATABASE() INTO CurrentDatabase;
IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema=CurrentDatabase AND table_name = 'macc_stalog_1' AND index_name = 'idx_ssid') THEN
ALTER TABLE `macc_stalog_1` ADD INDEX idx_ssid ( `ssid` );
ELSE
select "macc_stalog_1 is already exist idx_ssid";
END IF;
END//
DELIMITER ;
CALL add_index_to_macc_stalog_1();
DROP PROCEDURE IF EXISTS add_index_to_macc_stalog_1;
SET @add__on_admin = (SELECT IF(
(SELECT count(1)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'admin'
AND table_schema = DATABASE()
AND column_name = 'lft'
) > 0,
"select 'admin exist lft'",
"alter table admin add column lft int(11) unsigned COMMENT '树形结构使用'; "
));
PREPARE stmt FROM @add_lft_on_admin;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 可重复性添加索引
DROP PROCEDURE IF EXISTS add_index_to_macc_stalog_1;
DELIMITER //
CREATE PROCEDURE add_index_to_macc_stalog_1() BEGIN
DECLARE CurrentDatabase VARCHAR(250);
SELECT DATABASE() INTO CurrentDatabase;
IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema=CurrentDatabase AND table_name = 'macc_stalog_1' AND index_name = 'idx_ssid') THEN
ALTER TABLE `macc_stalog_1` ADD INDEX idx_ssid ( `ssid` );
ELSE
select "macc_stalog_1 is already exist idx_ssid";
END IF;
END//
DELIMITER ;
CALL add_index_to_macc_stalog_1();
DROP PROCEDURE IF EXISTS add_index_to_macc_stalog_1;
相关文章推荐
- 【iOS】数据库FMDB的使用(二)
- MySql 数据库将中文填入时字段时显示?号
- oracle自治事务
- oracle基础知识
- 在windows Server 2008 R2上安装oracle 12C 出现的问题以及解决方法
- MFC中用ADO连接数据库
- sql case when
- Redis 的性能幻想与残酷现实
- SqlServer创建加密视
- 数据库schema设计与优化
- MySql错误代码1045的解决方案
- mysql相关命令的作用总结
- PostgreSQL数据库压力测试工具pgbench简单应用
- Oracle trunc()函数的用法
- MySQL的备份与过滤
- mysql 中的information_schema是什么
- Oracle基础
- win10下安装MySQL启动失败
- ubuntu下搭建配置nodejs+mongodb环境
- Mysql 设置某字段唯一