为了账号安全,请及时绑定邮箱和手机立即绑定

动态更改数据库列类型

动态更改数据库列类型

烙印99 2021-08-19 18:23:04
给定一个理想情况下应该没有停机时间的 Java 服务,我想将表的列类型从 varchar 更改为 longtext,同时保持该服务的活动状态。该服务正在使用 spring --> jpa、hibernate 并与 mysql 数据库对话。该实体具有映射属性,我们称之为 foobar,声明为字符串。所以现在它看起来像这样:java实体: String foobarMySQL 列: varchar(255) foobar我想做一个表修改,所以它会是这样的:java实体: String foobarMySQL 列: longtext foobar问题:如果我更改 mysql 列并保持 java 服务运行,它是否仍然能够读/写该列还是会抛出错误?
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

理论上我会说“是”,变化应该是透明的。毕竟这两种类型在 JDBC 中都由相同的java.sql.Types.VARCHAR类型表示。

但是——这是理论——而且由于您的申请似乎非常关键,我不会盲目相信该理论。

在 DEV 或 TEST 环境中做一个简单的测试就会给你答案。

只要确保您使用完全相同的

  • 数据库版本,

  • JPA版本,

  • 休眠版,

  • JVM 版本,

  • 应用版本,

  • 图书馆,

  • 等等。


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信