MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
一套代码,多家部署时,在SQL脚本升级时,通过一个SQL文件给运维,避免出现SQL执行序顺出错及漏执行SQL
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
MySQL 中不像 Oracle或 MSSQL 可以直接在脚本中进行 if 判断,所以可以通过添加存储过程的方式,来解决这个问题
#通过存储过程添加字段,如果字段存在就不添加。执行后将存储过程删除
DELIMITER //
CREATE PROCEDURE mes.ADD_USER_REAL_NAME()
BEGIN
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE
table_schema = 'test'
AND table_name = 'sys_user'
AND column_name = 'REAL_NAME')
THEN
ALTER TABLE `sys_user` ADD COLUMN `REAL_NAME` VARCHAR(20) NULL COMMENT '真实姓名' AFTER `LoginName`;
END IF;
END;
//
CALL ADD_USER_REAL_NAME;
DROP PROCEDURE ADD_USER_REAL_NAME;
# 若记录已经存在,则忽略本次操作,返回影响行为0,否则执行插入操作,返回影响行为1
INSERT IGNORE INTO sys_user(id,loginName)VALUE(123,456)
# 若记录已经存在,则删除老的记录,插入此新的记录,否则直接插入
REPLACE INTO sys_user(id,loginName)VALUE(123,789)
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行的更多相关文章
- Oracle 项目中 SQL 脚本更新方式
DECLARE hasVersion ); dbVersion ); BEGIN ) INTO hasVersion FROM ELB_SETTINGS E WHERE E.KEY='dbVersio ...
- MySQL数据库中.SQL文件的导出方式
转自:http://tech.watchstor.com/management-117401.htm 在MySQL数据库中导入SQL文件是件很麻烦的事情,但是这是一项大家非常值得学习的技术,本文就从最 ...
- VS Code项目中通过npm包的方式共享代码片段的方案实现
VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...
- PowerDesign16.6支持Mysql的生成sql脚本中包含Collate信息
当前powerDesign版本:16.6 列上指定:Collation = utf8_general_ci 但是SQL脚本中,列字段没有显示Collect ---------------------- ...
- 通过SQL脚本导入数据到不同数据库避免重复导入三种方式
前言 无论何种语言,一旦看见代码中有重复性的代码则想到封装来复用,在SQL同样如此,若我们没有界面来维护而且需要经常进行的操作,我们会写脚本避免下次又得重新写一遍,但是这其中就涉及到一个问题,这个问题 ...
- 项目中nodejs包高效升级插件npm-check-updates
nodejs包高效升级插件npm-check-updates 最近想升级npm的包 1.//常规的包升级方式/2.npm update (包) 到npm一搜发现了一个很好的升级工具 npm-check ...
- MySQL命令行SQL脚本的导入导出小结(数据库的备份与还原)
1.设置环境变量 要想在命令行下各处都能执行mysql命令,必须在系统变量Path中添加mysql的命令所在的目录.例如我安装的是集成PHP环境的mysql,在D盘xampps下,则我需要将" ...
- mysql导入外部sql脚本的方法
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011043843/article/details/29689853 导入的方法分为两种:一是採用图 ...
- C# web项目中sql数据库转sqlite数据库
最近做了一个小网站,用到了一个使用sql server 2005的.net cms系统,但是现在我所买虚拟主机的服务商,不给虚拟主机提供sql server服务了,那就转数据库吧,转啥好呢,思来想去, ...
- class类名在webpack项目中的两种引用方式
一.问题描述 在项目工程中,我们通常既用到css module,也用到普通的less文件引用方式,代码及webpack配置如下,运行时,发现只有css module起作用,如何让两者都起作用呢? // ...
随机推荐
- 【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库
为什么需要开发自己的 Go 库 在编程语言中,包(Package)和库(Library)是代码组织和复用的重要工具.在 Go 中,包是代码的基本组织单位,每个 Go 程序都由包构成.包的作用是帮助组织 ...
- 小景的Dba之路--压力测试和Oracle数据库缓存
小景最近在做系统查询接口的压测相关的工作,其中涉及到了查询接口的数据库缓存相关的内容,在这里做一个汇总和思维发散,顺便简单说下自己的心得: 针对系统的查询接口,首次压测执行的时候TPS较低,平均响应时 ...
- 排序:使数组唯一的最小增量 (3.22 leetcode每日打卡)
给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1. 返回使 A 中的每个值都是唯一的最少操作次数. 示例 1: 输入:[1,2,2]输出:1解释:经过一次 move 操作, ...
- CSS 尺寸单位概述
在本文中,我们将探讨 CSS 尺寸单位的四大类别.我们将了解这些尺寸单位的用途.它们的最佳工作原理,以及如何在每种情况下选择最佳尺寸单位,从而在各种媒体和设备尺寸下优化我们的布局. 关于 CSS 尺寸 ...
- LabVIEW基于机器视觉的实验室设备管理系统(3)
目录 行动计划 创建用户信息数据库 后面板连线 初始化 确认修改 确认id 判断旧密码是否正确 判断两次输入的新密码是否相同 修改用户数据库中的密码 结尾 效果演示 上一期我们完成了欢迎登录和信息查询 ...
- 畅捷通T+与道一云对接集成报销信息列表连通凭证创建
畅捷通T+与道一云对接集成获取报销信息列表连通凭证创建 数据源系统:道一云 在道一云坚实的技术基础上,道一云推出全新升级的2.0产品矩阵,分别是低码平台.智能门户.场景应用.基于云原生底座,为企业提供 ...
- JavaWeb项目练习(学生选课管理系统)二【新建数据库】
思路 1.页面美化css这部分,挖个坑,我打算做好一点所以先空着.× 2.需要做四个数据表(学生.教师.管理员.课程) 关联: 学生有个人课表 教师有教授课程和个人课表 管理员有全部权限(关联所有数据 ...
- 论文阅读:2023_Semantic Hearing: Programming Acoustic Scenes with Binaural Hearables
论文地址:语义听觉:用双耳可听器编程声学场景 论文代码:https://semantichearing.cs.washington.edu/ 引用格式:Veluri B, Itani M, Chan ...
- 2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小「操作」数(可能为 0)。 每一步「操作」中,你可以分别从 arr1 和 arr2
2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小「操作」数(可能为 0). 每一步「操作」中,你可以分别从 arr1 和 arr2 ...
- 2023振兴杯-Crypto wp
crypto1 题目 from flag import flag def encrypt(x, y): key='zxb' result='' for i in range(len(x)): resu ...