MySQL检查表是否存在错误

时间:2012-12-10 10:56:28

标签: 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 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   'IF EXISTS附近(选择1来自sysobjects WHERE xtype ='u'和名称'at   第1行

有人可以帮我这个吗?

提前致谢

2 个答案:

答案 0 :(得分:15)

在MySQL中,您可以使用以下语法:

CREATE TABLE IF NOT EXISTS

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

答案 1 :(得分:5)

试试这个:

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

CREATE TABLE IF NOT EXISTS 'TableName'