- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在不重新部署应用程序的情况下从数据库中删除一列。
我正在为表格使用 JOOQ 生成的文件,并且我已经从代码中删除了该字段的所有使用,因此该字段没有“获取”或“设置”,但是当获取记录时,该字段仍在询问。因此,如果我删除该列,代码将会中断。
我正在考虑编辑 JOOQ 生成的文件,但不确定这是否有效,因为字段似乎在其中编号(可能基于它们在表中的索引)。
/**
* Setter for <code>database.person.email</code>.
*/
public void setEmail(String value) {
set(7, value);
}
/**
* Getter for <code>database.person.email</code>.
*/
public String getEmail() {
return (String) get(7);
}
最佳答案
您似乎在使用 selectFrom(Table)
.它总是会从 Table.fields()
中生成一个明确的列列表在 SELECT
子句中,如果列列表是 jOOQ 已知的。 This should probably be better documented .
此行为(与生成 SELECT *
相对)的结果是:
然而,理想情况下,您应该始终在投影中使用明确的列列表,而不是投影所有列,除非您无论如何都需要其中的大部分列。这不仅可以防止这种问题在大多数情况下发生,还可以通过多种方式提高性能。
I am thinking about editing the JOOQ generated files, but unsure if this will even work as the fields seems to be numbered in there (maybe based on their index in the table).
如果编辑这些文件是一种选择,那么重新生成和重新部署也可能是一种选择。我建议不要手动编辑这些文件。如果必须,请确保同时编辑生成的 Table
和 TableRecord
类,并调整所有 列索引。
关于mysql - 如何在不使用 JOOQ 重新部署的情况下删除 mysql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58877972/
我是一名优秀的程序员,十分优秀!