2010-11-17 49 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谈谈这件事。

相关问题