首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    hibernate.hbm2ddl.auto=update不能自动生成结构

    com.mysql.cj.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1955) at org.apache.commons.dbcp2. 不存在,也就是说hibernate并没有自动生成结构,hibernate.hbm2ddl.auto=update不起作用,但是把update改为create就能自动生成。 org.hibernate.dialect.MySQLInnoDBDialect 改为 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 但是我本来就是这样写的,肯定是其他原因也会导致hibernate.hbm2ddl.auto 终于在几乎千篇一律的文章中找到了一篇不一样的,原因是数据库中已经有相同名字的了(可能这张是属于别的用户) 于是我到别的里面查,果然在另外一个里面确实存在t_user了, 解决方案: 将既存t_user 改为t_user1或者将这次的名字修改下, 然后再执行这次代码,成功!!

    73420编辑于 2022-07-18
  • 来自专栏大数据知识

    MySQL数据库DDL结构操作

    结构操作1. INT)charset=utf8;2. 数据的修改(ALTER)修改表语法如下:ALTER TABLE 名 操作;2.1 向现有中添加列在结构已经确定后, 如果想要增加一列可以使用下面语句进行更改:#在课程基础上添加gradeId 结语最后,我们对本文核心要点进行总结:本节中主要学习的是DDL中的结构的操作其中创建表语句, 删除表语句比较重要。 修改结构语句一般使用较少,因为结构设计创建后一般很少变动, 如果变动那么项目代码也会随之变动, 这样成本太高。

    4.5K10编辑于 2023-04-14
  • 来自专栏张戈的专栏

    gh-ost:在线DDL修改MySQL结构工具

    导致很多 DDL 变更都必须压到空闲时候做,比如凌晨,非常苦逼。 可测试 读取二进制文件内容的操作完全不会增加主库的负载,在从库上做修改结构的操作也和在主库上做是非常相象的(当然并不完全一样,但主要来说还是差不多的)。 gh-ost 自带了--test-on-replica 选项来支持测试功能,它允许你在从库上运行起修改结构操作,在操作结束时会暂停主从复制,让两张都处于同步、就绪状态,然后切换、再切换回来。 对于我们生产环境地每一张,小到空,大到几百 GB,都会通过修改存储引擎的方式来进行修改(engine=innodb),这样并不会真正修改结构。 问题 2、修改对象不能被触发器关联,gh-ost 虽然不再依赖触发器,但是依然不支持有触发器关联的,如果修改有触发器关联的,则会有如下提示: 2018-03-21 08:22:48 ERROR Found

    7.1K80发布于 2018-03-26
  • 来自专栏张戈的专栏

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

    一、故障背景 内部故障群反馈:XX 系统卡住不可用了,请帮忙看看; 排查发现是有一个 alter 修改数据库的结构的变更,出现了大量的 MDL 锁,导致服务不可用,最后通过 kill 掉这个 alter pt-osc 工具的工作流程: 检查更改是否有主键或唯一索引,是否有触发器 检查修改结构,创建一个临时,在新上执行 ALTER TABLE 语句 在源上创建三个触发器分别对于 INSERT UPDATE DELETE 操作 从源拷贝数据到临时,在拷贝过程中,对源的更新操作会写入到新建中 将临时和源 rename(需要元数据修改锁,需要短时间锁) 删除源和触发器,完成结构的修改 2、gh-ost gh-ost 是 github 开源的一个 DDL 工具,即 gitHub,s Online Schema Transmogrifier/Transfigurator/Transformer 以上,就是我在 MySQL 在线 DDL 修改结构的一些经验分享,希望路过的大神如果有更好的方案能指点一二,不吝赐教。

    3.7K70发布于 2018-03-26
  • MySQL DDL操作

    一、查询创建1、查询当前数据库所有show tables;2、查看指定结构 desc 名 ;通过这条指令,我们可以查看到指定的字段,字段的类型、是否可以为NULL,是否存在默认值等信 息。 4、创建结构CREATE TABLE 名( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [COMMENT 字段2注释 ], 字段3 字段3类型 [COMMENT 字段 )大整数值MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4 Bytes(-2 147 483 648,2 147 varchar(20)ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称'; 2、修改数据类型ALTER TABLE 名 MODIFY 字段名 新数据类型 案例如果tb_user存在,则删除tb_userDROP TABLE IF EXISTS tb_user;2、删除指定, 并重新创建TRUNCATE TABLE 名;

    1.2K70编辑于 2023-04-10
  • 来自专栏MySQL参数系列

    MySQL大DDL

    最近线上有大变更。所以给大家分享一下大变更的工具。 MySQL大变更主要有原生的online DDL、pt-osc(pt-online-schema-change)、ghost三种工具。 online DDL在5.7、8.0版本会支持更好一点儿,早一点的版本支持比较弱。 pt-osc是percona工具集中的一个工具。应该是应用最广泛的之一。 ghost是用go语言实现的工具。

    1.8K20编辑于 2022-08-16
  • 来自专栏springboot

    MySql基础之DDL-数据定义语言(修改结构

    删除指定的数据库( 推荐 ) DROP DATABASE IF EXISTS 数据库名; 2、创建 创建方式1 CREATE TABLE [IF NOT EXISTS] 名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], …… [约束条件] ); -- 创建 CREATE TABLE 使用 AS subquery 选项,将创建和插入数据结合起来 -- 创建的emp1和employees结构相同数据相同 CREATE TABLE emp1 AS SELECT * FROM employees ; -- 创建的emp2是空 CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2; 查看数据结构 show create table 语法格式: DROP TABLE [IF EXISTS] 数据1 [, 数据2, …, 数据n]; DROP TABLE 语句不能回滚 清空 删除中所有的数据 TRUNCATE TABLE

    35710编辑于 2025-01-21
  • 来自专栏喵叔's 专栏

    二、DDL 数据

    常用存储引擎: MyISAM:拥有较快的插入和查询速度,但是不支持事务; InnoDB:支持ACID事务,指出行级锁,支持外键,MYSQL5.5 版本后的默认存储引擎; MRG_MYISAM:将一组结构相同的 数值类型包括: timyint:1 字节 小整数值,一般用于存储状态; smallint:2 字节 大整数值; mediumint:3 字节 大整数值; int:4 字节 大整数值; bigint:8 三、创建数据 DDL中对数据的操作主要包含三种:创建、修改和删除。创建数据们需要定义的信息主要包括:名、字段名、字段类型。 四、操作已存在的: 添加字段:ALTER TABLE 名 ADD 字段名 字段类型; 修改字段:ALTER TABLE 名 MODIFY 字段名 字段类型; 删除字段:ALTER TABLE 名 DROP COLUMN 字段名; 删除:DROP TABLE 名。

    1.1K00发布于 2021-06-14
  • 来自专栏C++系列

    【MySQL】DDL结构的数据类型盘点&案例演示

    score double(4,1) 类型 大小 有符号范围 无符号(UNSIGNED)范围 描述 tinyint 1 byte (-128.127) (0, 255) 小整数值 smallint 2 0, 16777215) 大整数值 int/integer 4 byte (-2147483648, 2147483647) (0, 4294967295) 大整数值 bigint 8 byte (-2へ 63, 2へ63-1) (0, 2へ64-1) 极大整数值 float 4 byte (-3.402823466 E+38, 3.402823466351 E+38) (1.175494351E-38, 中等长度文本数据 longbolb 0-4294967295 bytes 二进制形式的极大文本数据 longtext 0-4294967295 bytes 极大文本数据 三.日期类型 单独年月日十分 timestanp 4 byte 1970-01-01 00:00:01 至 2038 -01-1903:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳 四.根据需求创建(

    29610编辑于 2024-03-28
  • 来自专栏喵叔's 专栏

    二、DDL 数据

    常用存储引擎: MyISAM:拥有较快的插入和查询速度,但是不支持事务; InnoDB:支持ACID事务,指出行级锁,支持外键,MYSQL5.5 版本后的默认存储引擎; MRG_MYISAM:将一组结构相同的 数值类型包括: timyint:1 字节 小整数值,一般用于存储状态; smallint:2 字节 大整数值; mediumint:3 字节 大整数值; int:4 字节 大整数值; bigint:8 三、创建数据 DDL中对数据的操作主要包含三种:创建、修改和删除。创建数据们需要定义的信息主要包括:名、字段名、字段类型。 四、操作已存在的: 添加字段:ALTER TABLE 名 ADD 字段名 字段类型; 修改字段:ALTER TABLE 名 MODIFY 字段名 字段类型; 删除字段:ALTER TABLE 名 DROP COLUMN 字段名; 删除:DROP TABLE 名。

    87520发布于 2021-06-25
  • 来自专栏大大刺猬

    提取超复杂DDL

    导读在学习mysql的结构的时候, 会接触到各种数据类型, 各种索引, 那么把它们都柔和到一起会怎么样呢? 就挺离谱的...复杂DDL提取所以我们的复杂DDL是不包含分区的..., 由于测试版本是8.0.28和5.7.38 所以也不支持向量类型..., 前缀索引也忘了...好了, 来看看这个超复杂的DDL 尤其是某些情况只剩数据文件的时候, 就非常需要数据文件对应的DDL了.该DDL比较复杂, 但不难, 我就不解释了.在5.7环境提取DDL在mysql 5.7环境下, 的元数据信息是放在.frm文件中的 .本次重点是提取DDL, 这种工具市场上其实不多, 而开源的就更少了, 主要是拼接DDL太麻烦, 又用处不大, 有那时间不如***. ibd2sdi + sdi2ddl首先出场的是官方的ibd2sdi加上第三方的 sdi2ddl, 该工具比较年轻, 才1年.

    82940编辑于 2024-12-11
  • 来自专栏蝉羽

    MySQL DDL 操作全攻略

    我们在运维MySQL数据库的时候,时常会对数据进行DDL操作,比如修改字段、添加索引等。对于MySQL,DDL操作时会锁。如果比较小,比如小于1w时,影响还是比较小的。 MySQL 千万级因为上述相关的一些问题,需要进行 DDL 操作时,由于其锁特性可能引发诸多严重问题:长时间锁导致业务中断:当执行 DDL 操作修改千万级的字段或索引时,例如添加一个新字段,MySQL 锁期间资源竞争与系统负载飙升:DDL期间,等待锁释放的事务会不断堆积,占用大量系统资源如 CPU、内存和磁盘 I/O。 gh-ost 工作原理采用消费 binlog 的方式来代替触发器方式,将同步信息存储到临时中,经历校验、初始化、迁移、cut-over 四个阶段完成结构变更。 但需要注意的是,并非所有的 DDL 操作和结构都支持这种无锁或低锁级别的操作,具体要根据实际情况和 MySQL 版本进行调整.三、总结在处理 MySQL 千万级DDL 操作时,我们需要充分认识到锁可能引发的一系列严峻问题

    62810编辑于 2024-11-25
  • 来自专栏数据库之巅

    MySQL谬误集02: DDL

    旧的copy临时方式 我们旧有印像中的DDL变更导致长时间锁,无法进行DML,使用的一般就是copy方式,以新建索引为例,它的操作步骤大概如下: (1)新建带索引的临时 (2)锁原,禁止DML, 在引入Fast Index Creation和Online DDL之前,所有DDL都是采用copy方式。 2. (2) 对于原地操作,使用LOCK子句在DDL操作中调整性能和并发性之间的平衡。参见LOCK子句。 (3) 与复制方法相比,磁盘空间使用和I/O开销更少。 这些选项允许数据库管理员在执行结构更改时,根据需要选择适当的并发级别,以平衡性能和数据完整性。 实际上有3种情况: 1)对于只改元数据的操作,包括8.0.12后的加列操作,使用Online DDL 2)  对于数据量很小的,能使用Online DDL而不是只能使用copy方式,和业务沟通后也可以使用

    2.2K32编辑于 2023-08-19
  • 来自专栏Java,后端开发,网站开发,数据结构,算法分析.

    数据结构-2.顺序

    1.线性 线性是n个具有相同特性的数据元素的有限序列. 线性是一种在实际中广泛使用的数据结构,常见的线性有: 顺序 , 链表 , 栈 , 队列... 线性在逻辑上是线性结构, 也就是连续的一条直线 . 但是在物理结构上并不是连续的, 线性在物理上存储时, 通常以数组和链式结构的形式存储. 2.顺序 顺序是用一段物理地址连续的存储单元依次存储数据元素的线性结构, 一般情况下采用数组存储. = Arrays.copyOf(this.elem,2*this.elem.length); } //顺序空间足够 int tmp = this.usedSize (list3); 发现list3中包含list2的元素,  构造出来的新的顺序list3包含list2中所有的元素, 这就是这种构造方法的意义所在. 4.2 ArrayList常见操作 ArrayList

    17700编辑于 2024-11-19
  • 来自专栏小赵的Java学习

    数据结构——线性2

    上接 数据结构——线性(1) 上文中介绍了线性的顺序存储结构和单链表的介绍与代码实现,接下来,继续介绍线性的链式存储 循环链表   在座的各位都很年轻,不会觉得日月如梭。 然后谈了线性的抽象数据类型,如它的一些基本操作。 之后我们就线性的两大结构做了讲述,先讲的是比较容易的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性的数据元素。 然后我们分别就链式存储结构的不同形式,如单链表、循环链表和双向链表做了讲解。   总的来说,线性的这两种结构其实是后面其他数据结构的基础,把它们学明白了,对后面的学习有着至关重要的作用。 就像我们的线性的顺序存储结构一样,位置是排好的,一切都得慢慢来。   可见,舒适环境是很难培养出坚强品格,被安排好的人生,也很难做出伟大事业。    这也多像我们线性的链式存储结构,任何位置都可以插入和删除。   不怕苦,吃苦半辈子,怕吃苦,吃苦一辈子。如果你觉得上学读书是受罪,假设你可以活到80岁,其实你最多也就吃了20年苦。

    38630编辑于 2022-12-02
  • hibernate.hbm2ddl.auto

    以前没有关注这块,现在分析一下这个参数的属性值: 在hibernate配置文件中书写即可 它包含4个属性:      * create : 会根据你的model类来生成,但是每次运行都会删除上一次的 ,重新生成,哪怕2次没有任何改变      * create-drop : 根据model类生成,但是sessionFactory一关闭,就自动删除      * update : 最常用的属性 ,也根据model类生成,即使结构改变了,中的行仍然存在,不会删除以前的行      * validate : 只会和数据库中的进行比较,不会创建新,但是会插入新值 

    20820编辑于 2023-10-10
  • 来自专栏低级Java知识传播者

    纯分享:将MySql的建DDL转为PostgreSql的DDL.md

    结果不知道这个国产化过程中改了啥,用pgAdmin连上就各种报错,放弃 dbeaver,这个倒是可以用,就是我感觉操作太麻烦了,太繁琐 基于以上原因,一直用dbeaver来着,之前两次把mysql项目的结构换成 这次又来了个项目,我就换回了我熟悉的sqlyog(一款mysql客户端),几下就把建好了(mysql版本),然后写了个工具代码,来把mysql的DDL转换成pg的。 下面简单介绍下这个转换代码。 JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. ” 它支持解析sql语句这种非结构化文本为结构化数据 支持的DDL类型,目前仅限于create table和drop table,目前能满足我个人需求了,反正mysqldump那些导出来的sql结构基本就这样。 暂不支持DML,如insert那些。 ); } 解析出的的相关属性,全都被放在一个list中,我们根据COMMENT关键字定位索引,然后找后两个,即是注释具体值。

    2.7K30编辑于 2023-09-12
  • 来自专栏DBA随笔

    Online-DDL操作问题初探

    Online-DDL操作问题初探 今天下午在执行一个结构变更的时候,出现了一个问题,拿着分析了分析,对于online-ddl又有了新的认识,这里写篇文章记录下。 varchar(255) NOT NULL DEFAULT '' COMMENT , ADD COLUMN m varchar(255) NOT NULL DEFAULT '' , ADD COLUMN t2 去掉该参数之后,最终pt-osc修改结构执行成功。 2、MySQL5.5版本下引入了inplace的方式进行该操作,该操作不需要拷贝旧表的数据,但是依旧会锁住原。 3、MySQL5.6版本下开始支持online-ddl的操作,该方法和上面两种最大的不同是在执行DDL的时候,不会锁原,原不仅可以读,还可以写,当然,需要注意的是,该特性仅支持部分DDL操作。

    1.8K50发布于 2020-01-22
  • 来自专栏c/c++

    数据结构——lesson2线性和顺序

    线性是一种在实际中广泛使用的数据结构,常见的线性:顺序、链表、栈、队列、字符串... 2.线性在逻辑上是线性结构,也就说是连续的一条直线。 但是在物理结构上并不一定是连续的,线性在物理上存储时,通常以数组和链式结构的形式存储。 一、顺序是什么? 顺序是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序一般可以分为: 1. 基本增删查改接口 (1)初始化顺序 注:(1)asert断言防止传入指针为空; (2)使用malloc函数给数组开4个SLDataType(typedef为int,避免修改数据的麻烦)大小的空间 ); return; } psl->arry = tmp; psl->capacity *= 2;//开辟成功指示容量的capacity要相应的增加 } } (4)顺序打印 for

    27110编辑于 2024-03-13
  • 来自专栏数据库相关

    MySQL5.6 Online DDL 是否锁、rebuild、inplace的说明

    Online DDL 是否锁、是否rebuild、inplace或copy算法的说明: 原文: https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html

    1.1K40发布于 2019-09-17
领券