mysql下如何编写脚本_mysql 下数据库升级脚本的编写

/**/

2 drop procedure if existspro_upgrade;3 DELIMITER //

4 CREATE DEFINER=`root`@`%` PROCEDURE`pro_upgrade`(5 exec_boolen int,6 sql_str VARCHAR(256)7 )8 BEGIN

9 # 执行sql 操作10 IF sql_str <>‘‘

11 THEN

12 set @sql1 =sql_str;13 set @bexec =exec_boolen;14

15 if @bexec = 0

16 then

17 PREPARE execsql FROM @sql1;18 EXECUTEexecsql ;19 end if;20 END IF;21 END//

22 DELIMITER ;

View Code

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

2 判断库是否存在

736411785060b8df6ad8901f5c426d1e.gif

1013c83f7493cf6da538696fbcb5681d.gif

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

View Code

3 判断表是否存在创建

736411785060b8df6ad8901f5c426d1e.gif

1013c83f7493cf6da538696fbcb5681d.gif

1 CREATE TABLE IF NOT EXISTS`userinfo` (2 `id` int(11) NOT NULL DEFAULT ‘1‘,3 `user_name` varchar(255) NOT NULL,4 `user_pwd` varchar(255) NOT NULL,5 `user_type` tinyint(4) NOT NULL DEFAULT ‘2‘,6 `Power` int(11) NOT NULL DEFAULT ‘0‘,7 `DeptID` int(11) NOT NULL DEFAULT ‘0‘

8 PRIMARY KEY (`user_name`,`user_type`),9 KEY `userinfo_user_name_index` (`user_name`)10 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View Code

4 判断视图是否存在的

1 DROP VIEW IF EXISTS `allcode_view`;

5 判断存储过程是否存在

1 drop procedure if exists procedure_split;

6 插入初始化数据

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

7 判断触发器是否存在

1 DROP TRIGGER IF EXISTS `trigger_delete_fucode`;

8 向表里添加新的字段

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

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

9 其他

待补充……

mysql 下数据库升级脚本的编写

标签:info   exist   procedure   roc   table   power   图片   alter   view

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/a9999/p/7890238.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值