2012-12-10 94 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