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. iOS开发之使用AFN上传图片

    //1.创建管理者对象 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializ ...

  2. 李洪强iOS经典面试题36-简单介绍 ARC 以及 ARC 实现的原理

    李洪强iOS经典面试题36-简单介绍 ARC 以及 ARC 实现的原理   问题 简单介绍 ARC 以及 ARC 实现的原理. 考查点 ARC 是苹果在 WWDC 2011 提出来的技术,因此很多新入 ...

  3. python爬虫请求库之selenium模块

    一 介绍     selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器 ...

  4. Ubuntu 12.04下LAMP环境的搭建

    首先 apt-get install update 一下 sudo apt-get install update 安装MySQL 的服务端和客户端 sudo apt-get install mysql ...

  5. [转]第2台Tomcat端口变更失败解决办法

    原文链接:http://blog.csdn.net/preterhuman_peak/article/details/41803361 今天在服务器上部署了两个Tomcat.于是将其中一个的serve ...

  6. Entity Framework(四):使用DbModelBuilder API创建表结构

    DbContext类有一个OnModelCreating方法,它用于流利地配置领域类到数据库模式的映射.下面我们以fluent API的方式来定义映射.首先,先将Product类注释掉,重新编写该类, ...

  7. 数据库 数据库SQL语句四

    多表查询 等值连接 --查询员工信息,员工号,姓名,月薪,部门名称 select e.empno,e.ename,d.dname from emp e,dept d where e.deptno=d. ...

  8. qtcreator 中文乱码

    qt输入法不能用,ui中不能显示中文,开发板不能显示中文,这几个一直困扰这我,网上查找资料,在代码中添加各种支持,都没有解决问题.今天刚好解决了,记录于此. 参考链接 http://blog.163. ...

  9. HttpHandler简单示例

    using System.Web; namespace MyWebApp { public class MyHttpHandler : IHttpHandler { public void Proce ...

  10. ubuntu16.04 安装 eclipse

    1. 下载jdk , jdk-8u77-Linux-x64.tar.gz 2.下载 eclipse  , eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz 注:我下 ...