如何判断数据库中的表是否存在?

时间:2012-11-29 08:59:19

标签: java mysql oracle

我正在尝试更新数据库表,表的名称格式为employee_yearName_monthName。因为我想将每个月的数据保存在一个单独的表格中。

现在月初,该月没有表格。所以我应该创建表。但问题是如何决定表格是否存在?

提前感谢。

2 个答案:

答案 0 :(得分:2)

I want to keep each month's data on a separate table

这是严重不好的设计!如果您有巨大数据量(至少在50-100GB范围内,大约一亿行),则更喜欢分区( - > {{3 }, - > Oracle。如果您没有那么多数据,请不要担心,将数据存储在一个表中,使用正确的列,并设置正确的索引!

为什么这是一个糟糕的设计?试想一下:

  • 您如何为所有用户制定查询,例如年度报告?
  • 如果用户有32个字符名称怎么办?您的表名太长,例如Oracle无法处理
  • 您如何制定有关一个月内有一半,另一半在下一周的查询?
OP披露了更多详细信息。

EDIT 溶液

  • 您可以重构数据库 - 这需要管理决策。您应该评估维护当前结构与重构数据库相关的成本,并将其提交给决策者......
  • 在Oracle中
  • ,您可以使用MySQL管理表来查询表名:例如SELECT * FROM USER_TABLES WHERE TABLE_NAME LIKE 'employeeName%

答案 1 :(得分:2)

正如其他人所说,这不是一个好的设计。但是,如果你想坚持你的设计,你可以使用

CREATE TABLE IF NOT EXISTS tablename ( ... )