首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯分享:将MySqlDDL转为PostgreSqlDDL.md

连上就各种报错,放弃 dbeaver,这个倒是可以用,就是我感觉操作太麻烦了,太繁琐 基于以上原因,一直用dbeaver来着,之前两次把mysql项目的结构换成pg,一次是写了个乱七八糟代码来做表语句转换...,一次是用dbeaver,太繁琐了。...这次又来了个项目,我就换回了我熟悉sqlyog(一款mysql客户端),几下就把建好了(mysql版本),然后写了个工具代码,来把mysqlDDL转换成pg。 下面简单介绍下这个转换代码。...: image-20230902221909233 如上就包含了索引、列定义、选项等等。...Index index) -> Objects.equals("PRIMARY KEY", index.getType())) .findFirst().orElse(null); 组装sql:第一行

63730
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL DDL操作

一、查询创建1、查询当前数据库所有show tables;2、查看指定结构 desc 名 ;通过这条指令,我们可以查看到指定字段,字段类型、是否可以为NULL,是否存在默认值等信 息。...3、查询指定表语句show create table 名 ;通过这条指令,主要是用来查看表语句,而有部分参数我们在创建时候,并未指定也会查询 到,因为这部分是数据库默认值,如:存储引擎...) comment '姓名',age int comment '年龄',gender varchar(1) comment '性别') comment '用户';二、数据类型MySQL数据类型有很多...入职时间(取值年月日即可)对应表语句如下:create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar...代表,只有名存在时才会删除该名不存在,则不执行删除操作(如果不 加该参数项,删除一张不存在,执行将会报错)。

88370

MySQL谬误集02: DDL

导语 | 本文是MySQL谬误集系列文章第二篇,该系列旨在纠正一系列似是而非说法。比如关于MySQL DDL操作,有很多同学认为会锁,那是不是一定会锁呢?是锁读还是锁写呢?锁多长时间?...旧copy临时方式 我们旧有印像中DDL变更导致长时间锁,无法进行DML,使用一般就是copy方式,以新建索引为例,它操作步骤大概如下: (1)新建带索引临时 (2)锁原,禁止DML,...利用这个特性,可以在导出/导入时候,先导数据(有主键),再二级索引,可以大幅缩短时间。...Instant DDL MySQL8.0.12中DDL新增instant语法,只修改元数据,不需要锁,这里最重要改进是add column instant(即刻加列),在8.0之前版本,Online...MySQL加锁机制 5.MySQL字符编码指南--基础篇 6.从财政学专业到TOP金融数据库DBA--我学习之路 7.大胆假设小心求证:MySQL双写+双向复制实战 8.MySQL字符集终极指南--进阶篇

1K32

mysql常见选项和约束

约束主要是防止非法数据进入中,保证数据正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL约束保存在information_schema.table_constraints中...主键是用来唯一标识每一行,类型一般为整型或者字符串 具有主键约束列不允许有null值,不允许有重复值 每个最多只允许一个主键,可定义联合主键,主键名总是PRIMARY 联合主键 用几个列来进行唯一标识一行...,外键是构建于一个两个字段或者是两个两个字段之间参照关系 注意: 具有外键约束值不能随便给,必须满足外键所引用主键取值 一张中可以定义多个外键 外键列默认可以给null值 父子表...外键所在叫做子表,从 外键所引用主键所在叫做父,主表 constraint emp_deptid_fk foreign_key(deptid) references dept(deptid...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql

12810

MySQL数据类型选择

如果查询中包含可为 NULL 列,对 MySQL 来说更难优化,因为可为 NULL 列使得索引、索引统计和值比较都更复杂。特别是计划在列上索引,就应该尽量避免设计成可为 NULL 列。...MySQL 可以为整数类型指定宽度,例如 int(11),对大多数应用这是没有意义:它不会限制值合法范围,只是规定了 MySQL 一些交互工具(例如 MySQL 命令行客户端)用来显示字符个数。...char 类型是定长MySQL 总是根据定义字符串长度分配足够空间。 char 存储会删除存储数据末尾空格;varchar 不会。...与其它类型不同,MySQL 把每个 blob 和 text 值当作一个独立对象处理。...枚举(enum)类型 MySQL 在内部会将每个值在列表中位置保存为整数,并且在 .frm 文件中保存 “数字-字符串” 映射关系 “查找”。

5.2K10

粗聊Mysql——你会么?

本文中说到”,并非单纯一个库,或是一张,而是你建好库和在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到问题以及处理方法,算是一个小小心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里主键ID(自增)写到这个字段里,通过这样进行两关联。   ...所以我建议两之间关联不用主键,而是单独一个编号字段,我们这里可以用mysqluuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...至于性能,我本地测了下基本上没差异,网上也有人做了10W条数据测试——《实测MYSQL UUID性能》。...所以我建议,既然定义为varchar,就代表不会涉及到计算,何不干脆定义一个通用长度,比如varchar(50),如果真要限制长度,用程序去判断,不要让数据库来限制,不然用户输了一长串,结果mysql

5.2K10

MySQL数据库DDL结构操作

前言本专栏内容将会详细讲解MySQL数据库技术。数据库技术是Java开发中必不可少一部分知识内容。也是非常重要技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础小伙伴来学习。...=utf8] //可根据需要指定字符编码集案例 :创建符合下面字段名, 字段类型表列名数据类型说明subjectIdINT课程编号subjectNameVARCHAR(20)课程名称subjectHoursINT...列ALTER TABLE subject ADD gradeId int;2.2 修改列在结构确定后,有的时候字段长度定短了,可以用下面语句更改字段类型和长度:#修改课程中课程名称长度为10...数据删除(DROP)删除表语法:DROP TABLE 名3.1 删除学生通过下面语句可以删除整个:#删除学生DROP TABLE subject;----四....结语最后,我们对本文核心要点进行总结:本节中主要学习DDL结构操作其中创建表语句, 删除表语句比较重要。

3.7K10

MySQL在线DDL修改结构简单经验分享

摘 要 在线DDL修改生产环境一直是运维、DBA一个很头痛问题,本文分享一些相关经验,希望对还在头痛同学能有所帮助,当然更希望路过大神,如果有更靠谱方案能够指点一二,不吝赐教。...pt-osc 工具工作流程: 检查更改是否有主键或唯一索引,是否有触发器 检查修改结构,创建一个临时,在新上执行 ALTER TABLE 语句 在源上创建三个触发器分别对于 INSERT...UPDATE DELETE 操作 从源拷贝数据到临时,在拷贝过程中,对源更新操作会写入到新建中 将临时和源 rename(需要元数据修改锁,需要短时间锁) 删除源和触发器,完成结构修改...四、小结 对于 MySQL 在线 DDL 修改大,gh-ost 和 pt-osc 都是很不错选择,前提是不能有坑爹触发器和外键!当然,实在是遇上了也没什么办法,只能硬扛!...以上,就是我在 MySQL 在线 DDL 修改结构一些经验分享,希望路过大神如果有更好方案能指点一二,不吝赐教。

3.3K70

MySQLDDL结构数据类型盘点&案例演示

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎!...longtext 0-4294967295 bytes 极大文本数据 三.日期类型 单独年月日十分 混合年月日时分秒 timestanp注意事项:时间戳只能到2038年 date / time...timestanp 4 byte 1970-01-01 00:00:01 至 2038 -01-1903:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳 四.根据需求创建(...设计合理数据类型、长度) 设计一张员工信息,要求如下: 编号(纯数字) 员工工号(字符串类型,长度不超过10位) 员工姓名(字符串类型,长度不超过10位) 性别(男/女,存储一个汉字) 年龄(正常人年龄...unsigned comment '年龄', idcard char(18) comment‘身份证号’, entrydate date comment ‘入职时间’ )comment '员工'

9710

【0基础学习mysql】之DDL-操作

目录 DDL-操作 1.创建 1.举例 2.执行结果 2.显示 1.举例 2.执行结果  3.显示数据库中 1.举例 2.执行结果  4.修改 1.添加字段  2.修改字段  3.删除字段...4.修改名  5.删除 总结 ---- DDL-操作 1.创建 create table 名(字段 字段类型,字段,字段类型); 1.举例 create table user(id int,name...1.添加字段 ALTER TABLE 名 ADD 字段名 类型(长度)[COMMENT 注释][约束];([]只是用于区分,在写代码时候是没有[]) 举例: 为user添加一个名称为gender,...1.删除 DROP TABLE[IF EXISTS] 名; 2.删除该,并重新创建新 TRUCATE TABLE 名; 总结 要熟练掌握、改、展示、删。...各位学习mysql朋友可以联系我,互相讨论,一起进步!!! +✏️+⭐️是对博主最大鼓励与支持!!!

29040
领券