2012-04-19 28 views
3

可能重複:
SQL Server: Check if table exists
Oracle: If Table Exists你如何使用SQL來查看錶是否存在?

我試圖創建一個表,並插入一些值,但我做之前,我必須確保不能將表已經存在。你如何檢查這個?

+1

哪種語言,如在mysql中可以使用,如果存在 – Satya 2012-04-19 04:43:48

+0

我目前正在使用Oracle。似乎所有的答案都假定我正在使用SQL Server,因爲我忘了在那裏提及它。 – Programmer 2012-04-19 05:02:04

+1

爲什麼你想要這樣做?使用Oracle時,很少需要隨時創建表(與某些其他類型的DBMS不同)。 – APC 2012-04-19 06:20:27

回答

1

您可以嘗試簡單地從中選擇並捕獲錯誤,否則您將需要編寫特定於數據庫的SQL以查詢其各自的元數據表並查看它們。

0

如果MySQL:

select count(*) from my_tables where table_name='table_1'; 
If count>0 then ... 
0

假設的SQL Server ...查詢系統對象:

select * from sysobjects where xtype='U' and name ='tablename' 
+0

或者對於SQL Server ** 2005 **和更新 - 甚至更好 - 查詢'sys.tables':'if exists(select * from sys.tables where Name ='tablename').....' – 2012-04-19 04:56:24

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

+1

你知道嗎Oracle代替SQL Server是什麼樣子? – Programmer 2012-04-19 05:03:26

+0

這對於oracle來說似乎是一樣的,但我不是100%。看看他們的文檔,這看起來是相同的: – 2012-04-19 05:05:35

+0

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/create-table.html – 2012-04-19 05:05:44

0

這個簡單的查詢提供有關其用戶在Oracle中創建的特定表的細節。嘗試一下。

select * from user_tables where table_name = 'tablename'; 
+1

不要忘記,默認情況下表名是大寫。 – 2012-04-19 06:18:57

+0

這裏tablenane是表的通用名稱。 tablename不是一個特定的表。 – hitman047 2012-04-19 06:36:01

+1

我明白,但OP可能沒有意識到這一點。 – 2012-04-19 06:38:02

相關問題