用navicat进行mysql表结构同步

用navicat进行mysql表结构同步

  • 前言
  • 新增一个列然后进行表结构同步
  • 删除一个列然后进行表结构同步
  • 把Int列转成TinyInt列,看数字溢出的情况下能不能表结构同步
  • 总结

前言

从同事那边了解到还能用navicat进行表结构同步,他会在发布更新的时候,直接从测试环境导出全量表,然后和正式环境做表结构更新,这样在不改动数据的情况下就可以更新好正式环境而不是去一个个的写ALTER更新语句。避免了遗漏。
打算做几个测试

  1. 新增一个列然后进行表结构同步
  2. 删除一个列然后进行表结构同步
  3. 把Int列转成TinyInt列,看数字溢出的情况下能不能表结构同步

新增一个列然后进行表结构同步

准备一个测试表,我来试一试,弄2个库,再弄2条数据

CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE prod DEFAULT CHARACTER SET utf8mb4;CREATE TABLE user (
`id` INT PRIMARY KEY,
`name` VARCHAR(16),
`age` INT
) ENGINE InnoDB;INSERT INTO user VALUES (1, "小明", 13),(2,"小红", 99);

然后再更新test库

ALTER TABLE `user` DROP COLUMN `desc`;
ALTER TABLE `user` ADD COLUMN `desc` VARCHAR(256) NOT NULL DEFAULT "";

然后进行表结构同步
在这里插入图片描述
在这里插入图片描述
看到sql比较很准确,点击执行就可以了

删除一个列然后进行表结构同步

把test库里user的desc列删掉

ALTER TABLE `user` DROP COLUMN `desc`;

然后进行表结构同步
在这里插入图片描述
在这里插入图片描述
看的到也执行正确

把Int列转成TinyInt列,看数字溢出的情况下能不能表结构同步

把prod表中小红的age改成999999

UPDATE `user` SET COLUMN age=999999 WHERE `id`=2;

在这里插入图片描述
然后把test库中user表的age类型改成tinyInt

ALTER TABLE `user` MODIFY COLUMN `age` TINYINT;

然后再进行sql结构同步
在这里插入图片描述
sql语句怎么是这样的?AFTER是什么?

SET FOREIGN_KEY_CHECKS=0;ALTER TABLE `prod`.`user` MODIFY COLUMN `age` tinyint NULL DEFAULT NULL AFTER `name`;SET FOREIGN_KEY_CHECKS=1;

执行之后发现出错了,表结构修改不成功
在这里插入图片描述
然后把prod里user表里,小红的age改成9,再试一遍,成功了
在这里插入图片描述
也就是在数据溢出的情况下,表结构不能更改。

总结

表结构同步可以很方便的得到我们需要的变更sql语句,这样在更新包的时候,就方便了,但是这个方法在实际工作中有人用过,有人从没用过,所以,和同事协作的时候,最好给别人发sql时发增量sql,而不是导全表,然后让别人做sql结构同步,因为别人很可能会把sql直接执行掉,而navicat导出的全表结构都是带drop if exists的,会把正式环境的表删掉的,就有人把这个删掉过,因为沟通没沟通好,一边发了全量sql,另一边的同事执行了这个sql导致正式环境库被清了。很倒霉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础之Class类的定义、继承、多态

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、class类1.类属性操作(增删改)2.类方法操作 二、类的继承1、语法2、方法重写 二、类的多态 一、class类 、三部分组成 1、类名&#xff…

MySQl on和where条件的区别?

MySQ L on和where条件的区别? on会生成临时表,不满足条件会置空 where 过滤数据,不满足的数据不会显示

木地板 VS 瓷砖,不同风格应该怎么选?福州中宅装饰,福州装修

不同装修风格应该怎么选择地板铺贴材质?是选择木地板还是瓷砖?以下分点阐述: ①现代简约风格 推荐使用瓷砖。因为瓷砖的表面光滑,能反射出灯光的倒影,营造出简洁明亮的视觉效果。同时,瓷砖耐磨、易清洁&am…

算法——动态规划:01背包

原始01背包见下面这篇文章:http://t.csdnimg.cn/a1kCL 01背包的变种:. - 力扣(LeetCode) 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 简化一…

Mysql从0到1 —— CRUD/索引/事务

文章目录 1 预备知识1.1 安装1.2 登录 & 退出1.3 配置文件my.cnf 2 基础知识2.1 链接服务器2.2 什么是数据库2.3 基本使用2.3.1创建表2.3.2 插入数据 2.4 服务器、数据库、表的关系2.5 SQL分类2.6 存储引擎 3 Mysql数据库的操作3.1 创建和删除3.2 字符集和校验规则3.3 查看…

javaScript之递归

什么是递归? 递归函数是在一个函数内通过名字调用自身的情况下构成的。 递归的优点 递归可以用来处理循环解决起来比较麻烦的问题 方法: 1,函数自己调用自己 2,找规律,找出这一次和上一次的关系 2,需…

这是斗魂大赛?不!是斗美大赛!

最近《绝世唐门》中斗魂大赛正如火如荼地展开,每场对战都十分精彩,令人心潮澎湃,忍不住大喊“过瘾”! 除了扣人心弦的打斗场面,新登场的角色们更是颜值爆表,美得令人心动,帅得让人窒息。不得不赞…

机器学习模型及其使用方法——《机器学习图解》

本书教你两件事——机器学习模型及其使用方法 机器学习模型有不同的类型,有些返回确定性的答案,例如是或否,而另一些返回概率性的答案。有些以问题的形式呈现;其他则使用假设性表达。这些类型的一个共同点是它们都返回一个答案或…

配置中心apollo==springboot使用apollo

多环境的APOLLO之前已经搭建好了。 新建一个SPRINGBOOT项目 <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>2.2.0</version> </dependency> <?x…

L2-4 部落

在一个社区里&#xff0c;每个人都有自己的小圈子&#xff0c;还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里&#xff0c;于是要请你统计一下&#xff0c;在一个给定社区中&#xff0c;到底有多少个互不相交的部落&#xff1f;并且检查任意两个人是否属…

实现定时任务

定时任务的实现方式有很多&#xff0c;比如XXL-Job等。但是其实核心功能和概念都是类似的&#xff0c;很多情况下只是调用的API不同而已。 这里就先用SpringBoot为我们提供的定时任务的API来实现一个简单的定时任务&#xff0c;让大家先对定时任务里面的一些核心概念有个大致的…

网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能

使用 JAVA 自带的api 目录 一、回显服务器 UdpEchoServer 服务器代码 客户端代码 二、翻译功能 UdpDictServer 在UdpDictServer里重写process方法 一、回显服务器 UdpEchoServer /*** 回显服务器* 写一个简单的UDP的客户端/服务器 通信的程序* 这个程序没有啥业务逻辑&am…

TSINGSEE青犀智慧工厂视频汇聚与安全风险智能识别和预警方案

在智慧工厂的建设中&#xff0c;智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控&#xff0c;还能够通过人工智能技术&#xff0c;实现智能识别、预警和分析&#xff0c;为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

PaddleGAN快速让你的照片动起来

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.30 Last edited: 2024.03.30 目录 PaddleGAN快速让你的照片动起来 两个方案让照片动起来 方案一&#xff1a;FirstOrder 下载Paddle…

CAPL实现关闭TCP连接的几种方式以及它们的区别

在讲正文前,我们有必要复习下关闭TCP连接的过程:四次挥手。 假设A和B建立TCP连接并进行数据传输,当A的数据发送完后,需要主动发起断开连接的请求: A发送FIN报文,发起断开连接的请求B收到FIN报文后,首先回复ACK确认报文B把自己的数据发送完,发送FIN报文,发起断开连接的…

uniapp中安装vant2

1.uniapp项目搭建 因为是安装vant2所以项目选择vue2&#xff0c;如果vue3项目的话安装vant3 2.安装vant npm i vantlatest-v2 3.在main.js文件引入挂载vant 说明&#xff1a;// #ifndef VUE3这里是vue2模板用来挂载注册组件的地方&#xff1b;// #ifdef VUE3这里是vue3模板…

Spring Boot简介及案例

文章目录 Spring Boot简介以下是一个简单的 Spring Boot Web 应用实例**步骤 1&#xff1a;创建 Spring Boot 项目****步骤 2&#xff1a;编写 RESTful 控制器****步骤 3&#xff1a;配置主类****步骤 4&#xff1a;运行并测试应用** Spring Boot简介 Spring Boot 是一个用于简…

canvas跟随鼠标画有透明度的矩形边框

提示&#xff1a;canvas跟随鼠标画有透明度的矩形边框 文章目录 前言一、跟随鼠标画有透明度的矩形边框总结 前言 一、跟随鼠标画有透明度的矩形边框 test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)

长期以来&#xff0c;隐变量模型存在着长期信息保存和短期输入缺失的问题。 解决这一问题的最早方法之一是长短期存储器&#xff08;long short-term memory&#xff0c;LSTM&#xff09; (Hochreiter and Schmidhuber, 1997)。 它有许多与门控循环单元&#xff08; 9.1节&…

HTX Ventures:为什么BounceBit可能成为新的BTC生态解决方案?

随着BTC现货ETF的通过&#xff0c;全球各大机构和个人都在不断加码对BTC的持仓&#xff0c;BTC价格也随之上升&#xff0c;目前已上升至全球市值排名前十的资产。在本轮市场周期中&#xff0c;BTC铭文和BTC扩容是两个被市场高度关注的细分赛道。BTC生态资产的多元化收益探索正在…