未来打样SQL表?

时间:2010-12-01 12:10:41

标签: java sql mysql database jpa

我正在考虑为非关键任务项目创建一个MySQL数据库。我正在考虑一种情况,如果我不得不在表中插入另一列,如何在不损害预先存在的列的数据完整性的情况下实现这一点,并指定这些附加列的默认值?我想要SQL和Java Persistence API(JPA)的答案。

此外,我还想知道如何在父表的单元格中添加表。

4 个答案:

答案 0 :(得分:4)

很简单:

ALTER TABLE mytable
ADD COLUMN newcolumn VARCHAR(20)

您可以为其指定一个默认值,您可以使用AFTER xyz子句在“xyz”列之后添加它(或将其保留为仅将列添加到末尾)。

没有什么特别之处,任何RDBMS都允许您在运行中向数据库中添加(和删除)列。

答案 1 :(得分:1)

如上所述,您只需使用所选RDBMS的语法向表中添加一列。

如果您不想在此时更改代码,您所能做的只是提供合理的默认值(null也可能是合理的默认值)。这样您的应用程序仍可以插入行而不会出现任何问题。稍后您可以映射列并开始在应用程序中使用它。

公平地说,将dbschema更新与新版本的应用程序一起发布是很常见的。

答案 2 :(得分:1)

可能对您的代码产生影响的一件事是,代码是指位置列而不是关键字列。如果您希望给定firstname位于第5位,而不是使用关键字firstname引用它,则可能需要在表格的末尾添加新列。

答案 3 :(得分:0)

添加列应该对预先存在的数据没有影响,除非您执行链接列的操作,例如创建多列索引,唯一键或类似的东西。但如果新的& amp;之间没有这种联系。旧列,添加任意数量的列。疯了!