簡體   English   中英

將來的證明SQL表?

[英]Future Proofing SQL table?

我正在考慮為一個非關鍵任務項目創建一個MySQL數據庫。 我正在考慮一個場景,如果不得不在表中插入另一列,該如何在不損害現有列的數據完整性以及指定這些其他列的默認值的情況下實現這一目標? 我想要SQL和Java Persistence API(JPA)的答案。

另外,我還想知道如何在父表的單元格中添加表。

這很容易:

ALTER TABLE mytable
ADD COLUMN newcolumn VARCHAR(20)

您可以為其指定默認值,也可以使用AFTER xyz子句將其添加到“ xyz”列之后(或將其保留為僅將列添加到末尾)。

這沒有什么特別的,任何RDBMS都可以讓您動態地向數據庫中添加(和刪除)列。

如前所述,您可以簡單地使用所選RDBMS的語法在表中添加一列。

如果您此時不想更改代碼,您所能做的就是提供合理的默認值(null也可以是明智的默認值)。 這樣,您的應用程序仍然可以毫無問題地插入行。 以后,您可以映射列並開始在應用程序中使用它。

公平地說,發布dbschema更新和新版本的應用程序是很普遍的。

可能會對您的代碼產生影響的一件事是,如果代碼引用的是位置列而不是關鍵字列。 如果您希望給定的firstname位於位置5,而不是用關鍵字firstname來引用它,則可能要在表末尾添加新列。

除非您執行鏈接該列的操作(例如創建多列索引,唯一鍵或類似操作),否則添加列應該不會對現有數據產生任何影響。 但是,如果新列和舊列之間沒有此類鏈接,請添加任意多的列。 瘋了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM