如何判断数据中某张表是否存在
2014-08-15 17:05
363 查看
刚刚被一个比较麻烦的问题所困扰。这个问题就是如何判断数据中某张表是否存在,如果不存在则创建它。
恩,我先用了最笨的方法,就是写个select从表中读数据,捕获异常的同时就知道了改表没有创建。
此法不通,因为这个时候的异常似乎被认定为了系统错误,于是后面创建表的代码被忽略了。
大部分人的做法类似于select system.table where tabblename='***',反正我曾经用类似的句子查询过DB2,是成功的。
但是,我现在面对的不是DB2,而是7个不同的数据库,基本上常用的都包括了。是不是每类数据库都有上面的查询语句呢?是否查询语句相似呢?于是我挑了hsqldb,也是当前的默认数据库,来寻找解决办法。
很遗憾,我没有找到类似前面的句子。正当我打算放弃的时候发现了下面的代码,这段代码是我从一个国外的论坛中找到的,尽管我不知道它是不是万能钥匙,但是他这次对我而言确成了万能的:
select count(*) from User_Tab_Columns where table_name='T_E_KMCJB' and column_name='JCBZ1';
(检查某表中是否存在某个字段,注意大写。)
[b]select count(*) from all_tables where table_name='TD_KMDM';[/b]
(检查某数据库内,是否存在某张表,注意大写。)
恩,我先用了最笨的方法,就是写个select从表中读数据,捕获异常的同时就知道了改表没有创建。
此法不通,因为这个时候的异常似乎被认定为了系统错误,于是后面创建表的代码被忽略了。
大部分人的做法类似于select system.table where tabblename='***',反正我曾经用类似的句子查询过DB2,是成功的。
但是,我现在面对的不是DB2,而是7个不同的数据库,基本上常用的都包括了。是不是每类数据库都有上面的查询语句呢?是否查询语句相似呢?于是我挑了hsqldb,也是当前的默认数据库,来寻找解决办法。
很遗憾,我没有找到类似前面的句子。正当我打算放弃的时候发现了下面的代码,这段代码是我从一个国外的论坛中找到的,尽管我不知道它是不是万能钥匙,但是他这次对我而言确成了万能的:
java.sql.Connection con = getYourConnection(); ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null); if (rs.next()) { //yourTable exist }else { //yourTable not exist }
select count(*) from User_Tab_Columns where table_name='T_E_KMCJB' and column_name='JCBZ1';
(检查某表中是否存在某个字段,注意大写。)
[b]select count(*) from all_tables where table_name='TD_KMDM';[/b]
(检查某数据库内,是否存在某张表,注意大写。)
相关文章推荐
- 大数据查找------如何判断40亿个无符号整数是否存在某个数(无排序)
- mysql创建数据表时如何判断是否已经存在?
- 如何判断某个数据表是否存在
- mysql中如何判断 一个数据表是否已经存在
- mysql创建数据表时如何判断是否已经存在?
- JS中如何判断传过来的JSON数据中是否存在某字段
- sas 判断数据集是否存在及如何用sas代码关闭已打开的数据集
- JS中如何判断JSON数据是否存在某字段
- 如何判断传过来的JSON数据中,某个字段是否存在
- 如何判断传过来的JSON数据中,某个字段是否存在
- 如何判断数据库中是否存在一个数据表
- 如何判断ACCESS数据表中的某条记录是否存在
- JS中如何判断传过来的JSON数据中是否存在某字段
- mysql创建数据表时如何判断是否已经存在?
- JS中如何判断JSON数据是否存在某字段
- Sql 判断数据是否存在
- VB中如何判断文件、文件夹是否存在
- 如何判断一个已知的表中是否存在某个字段,如果不存在就创建它.
- [ASP.NET]对Oracle数据库创建表/判断数据表是否已存在
- 如何判断文件文件夹是否存在