1 升级时必须得存储过程

 /**/
drop procedure if exists pro_upgrade;
DELIMITER //
CREATE DEFINER=`root`@`%` PROCEDURE `pro_upgrade`(
exec_boolen int ,
sql_str VARCHAR(256)
)
BEGIN
# 执行sql 操作
IF sql_str <>''
THEN
set @sql1 = sql_str;
set @bexec = exec_boolen; if @bexec = 0
then
PREPARE execsql FROM @sql1;
EXECUTE execsql ;
end if;
END IF;
END//
DELIMITER ;

  这个存储过程主要是校验表字段是否存在

2 判断库是否存在

 CREATE DATABASE IF NOT EXISTS `fqmanagesysdb` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `fqmanagesysdb`;

3 判断表是否存在创建

 CREATE TABLE IF NOT EXISTS `userinfo` (
`id` int(11) NOT NULL DEFAULT '',
`user_name` varchar(255) NOT NULL,
`user_pwd` varchar(255) NOT NULL,
`user_type` tinyint(4) NOT NULL DEFAULT '',
`Power` int(11) NOT NULL DEFAULT '',
`DeptID` int(11) NOT NULL DEFAULT ''
PRIMARY KEY (`user_name`,`user_type`),
KEY `userinfo_user_name_index` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4 判断视图是否存在的

DROP VIEW IF EXISTS `allcode_view`;

5 判断存储过程是否存在

drop procedure if exists procedure_split;

6 插入初始化数据

 INSERT INTO `userinfo` (id,user_name,user_pwd,user_type,Power,DeptID)  select '', 'admin', 'admin', '', '', '' from DUAL where not exists (select * from userinfo where user_name = 'admin');

7 判断触发器是否存在

DROP TRIGGER IF EXISTS `trigger_delete_fucode`;

8 向表里添加新的字段

 SELECT count(*) FROM  information_schema.COLUMNS  WHERE TABLE_SCHEMA='fqmanagesysdb' AND table_name='userinfo' AND COLUMN_NAME='BrokerID' into @ret;
call pro_upgrade(@ret,'alter table userinfo ADD COLUMN BrokerID varchar(255) NOT NULL ');

这里用到了上面的存储过程,mysql里面在非存储过程里面不支持if not exists的判断

9 其他

待补充……

mysql 下数据库升级脚本的编写的更多相关文章

  1. MySQL/MariaDB/Percona数据库升级脚本

    MySQL/MariaDB/Percona数据库升级脚本截取<OneinStack>中upgrade_db.sh, 一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们.为防止大版本 ...

  2. 【转】用PowerDesigner制作数据库升级脚本

    [原创]用PowerDesigner制作数据库升级脚本   很多人使用PD的时候就问有没有制作自动升级脚本的功能.其实是有的. 操作原理: 1.保存原来的版本,另存为apm的文件,生成一个Archiv ...

  3. mysql下怎样运行脚本

    假设要运行脚本: F:\hello world\niuzi.sql 第一种方法:        在命令行下(未连接数据库),输入 mysql -h localhost -u root  -p < ...

  4. 实际应用脚本备份1——Ubuntu下应用升级脚本与执行方法

    程序自动更新脚本,命名为makefile: build:run run: killall java /webapps/‘应用目录名’/ /webapps/ ‘应用目录名’/ cd /opt/apach ...

  5. Web工程软件升级之数据库升级(一)

    1. 首先检查oracle数据库版本是否正确 (可以使用方法 lsinventory来实现) 2. 检查oracle连接是否成功 3. 解压升级包,放到特定目录 4. 做升级前数据备份,备份主要业务数 ...

  6. python脚本--mysql数据库升级、备份

    在公司经常要做测试环境的升级.备份.维护:升级后台的应用,不可避免要进行数据库的升级与备份,花了一个上午琢磨了一个脚本分享给大家. ToB的业务,在做环境维护的时候,有初始化环境和增量升级的环境,在测 ...

  7. windows下数据库文件使用脚本同步到linux下的mysql数据库中

    1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...

  8. Ubuntu Server下MySql数据库备份脚本代码

    明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...

  9. Windows下MySQL数据库备份脚本(一)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

随机推荐

  1. redis基础之订阅发布、主从复制和事务(四)

    前面已经学习了redis的基本的命令行操作和数据类型,下面开始redis一些有趣的功能. 订阅和发布机制 定义:发布者相当于电台,订阅者相当于客户端,客户端发到频道的消息,将会被推送到所有订阅此频道的 ...

  2. MySQL 5.7 双主复制+keepalived,常规业务一般够用了

    业务需求: 为Zabbix搭建2个数据库,一个库给服务器监控用,一个库给网络监控用. 硬件: 两台服务器,硬盘是1.2 T SSD卡,内存128G 架构: 希望做双主复制+keepalived,架构大 ...

  3. Apache Avro:一个新的数据交换格式

    原文: http://blog.cloudera.com/blog/2009/11/avro-a-new-format-for-data-interchange/ 注:由于个人英语能力有限,翻译不准确 ...

  4. spark读取本地文件

    /** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supp ...

  5. 大数据处理-Bloom Filter

    大数据处理--Bloom Filter 布隆过滤器(Bloom Filter)是由巴顿.布隆于一九七零年提出的.它实际上是一个很长的二进制向量和一系列随机映射函数. 如果想判断一个元素是不是在一个集合 ...

  6. jquery checkbox勾选/取消

    作者:@keenleung本文为作者原创,转载请注明出处:http://www.cnblogs.com/KeenLeung/p/3799895.html 目录 <form> 你爱好的运动是 ...

  7. Key-Value是用一个不可重复的key集合对应可重复的value集合

    Key-Value是用一个不可重复的key集合对应可重复的value集合.(典型的例子是字典:通过页码的key值找字的value值). 例子: key1—value1; key2—value2; ke ...

  8. HTTP报文-->MVC

    引用 学习Web开发不好好学习HTTP报文,将会“打拳不练功,到老一场空”,你花在犯迷糊上的时间比你沉下心来学习HTTP的时间肯定会多很多. HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行 ...

  9. easyui上传文件

    效果图: 代码: <form id="importFileForm" method="post" enctype="multipart/form ...

  10. Maven手动添加dependency(以Oracle JDBC为例)

    由于Oracle授权问题,Maven不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库.首先需要到Oracle官网上下载 ...