2010-11-17 45 views

回答

1

對列的限制。如果您在列上有PK或FK,則根據數據庫供應商的情況,他們可能(或不能)被刪除(輕鬆)。雖然用戶可能不會「使用」列,但它們可能依賴於其他列/表。 另外,完全同意duffymo。非常危險,讓用戶選擇放棄cols。 Oracle確實能夠恢復掉線,但實際上,你是否想要走下去? 自動生成的drop語句一直充滿着危險。

1

最大的問題有一點做與數據庫和一切與客戶端用它。您的Java應用程序可能能夠檢查列中是否存在任何非空條目,但無法知道哪些客戶端期望該列存在於SELECT和UPDATE中。

我不知道你的確切用例,但我會說這通常是DBA的活動,而不是你的應用的用戶。我建議小心。

+0

該用例涉及刪除不再需要的列,因此我們保證查詢存在涉及該列。但是我擔心應該考慮的因素,如果刪除應該排隊,如果有大量的行等 – praveen 2010-11-17 11:13:37

+0

仍然是錯誤的。這應該由DBA在數據庫管理控制檯中完成,而不是應用程序代碼。我質疑用戶和您的代碼可以「知道」不再需要列的想法。聽起來像一個應該重新審視我的設計。 – duffymo 2010-11-17 13:08:18

2

你確定你做對了嗎?除非你使用一次性表格讓人們亂用或用於學習,這聽起來像是一個不太好的設計。

一旦定義了表格,它們的列號不應該改變。否則,你會得到非規範化的表格;除非你的列上有相當不錯的限制,否則外鍵可能會中斷並且所有地獄都會崩潰。

跟蹤存在哪些列以及可以執行哪些查詢將會給您的JDBC代碼造成比所需更多的負擔。

這不是Java或JDBC問題,它更像是一個數據庫設計問題。你應該和你的DBA談談這件事。

相關問題