2012-12-10 91 views
3

我想檢查一個表是否已經存在,但是我無法得到這個工作。MySQL檢查表是否存在錯誤

IF EXISTS (SELECT 1 
    FROM sysobjects 
    WHERE xtype='u' AND name='tablename') 
     SELECT 'table already exists.' 
ELSE 
BEGIN 
    CREATE TABLE Week_(
      id INT(10)AUTO_INCREMENT PRIMARY KEY (id), 
      ... 
      ...) 
      END; 

我的錯誤:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS (SELECT 1 FROM sysobjects WHERE xtype='u' AND name' at line 1

有人可以幫助我?

在此先感謝

+0

sysobjects,xtype ='u'?看起來你正在使用MS Sql Server。 – Devart

+0

aha,所以這就是爲什麼它沒有工作;)我使用MySQL,發現這個代碼在互聯網上的某個地方。 – Resitive

回答

5

試試這個:

SELECT * 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'DBName' AND TABLE_NAME = 'TableName' 

OR

CREATE TABLE IF NOT EXISTS 'TableName' 
+0

注意:select from information_schema.TABLES在MySQL的早期版本(例如4.1)中不起作用,因爲它們沒有這些表格 – Dijkgraaf