3

可能重复:
SQL Server:检查表是否存在
Oracle:如果表存在

我正在尝试创建一个表并插入一些值,但在此之前我必须确保该表不存在。你如何检查这个?

4

5 回答 5

1

您可以尝试简单地从中选择并捕获错误,否则您将需要编写特定于数据库的 SQL 来查询它们各自的元数据表并查看那里。

于 2012-04-19T04:45:03.197 回答
0

这个简单的查询为您提供了有关用户在 oracle 中创建的特定表的详细信息。试试看。

 select * from user_tables where table_name = 'tablename';
于 2012-04-19T06:06:26.310 回答
0

如果 MySQL:

select count(*) from my_tables where table_name='table_1'; 
If count>0 then  ...
于 2012-04-19T04:45:22.513 回答
0

假设 SQL Server...查询系统对象:

select * from sysobjects where xtype='U' and name ='tablename'
于 2012-04-19T04:49:46.237 回答
0

在 MySQL 中,您可以使用 CREATE TABLE IF NOT EXISTS 构造并在 INSERT 查询之前运行它。如果表不存在,这将创建表,如果表存在,则不执行任何操作。

CREATE TABLE IF NOT EXISTS myTable (
    ....
)

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/create-table.html

于 2012-04-19T04:50:12.510 回答