MySQL检查表是否存在错误

Res*_*ive 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; 
Run Code Online (Sandbox Code Playgroud)

我的错误:

#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'IF EXISTS附近使用正确的语法(SELECT 1 FROM sysobjects WHERE xtype ='u'和name'在第1行

有人可以帮我弄这个吗?

提前致谢

Dav*_*tin 15

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

CREATE TABLE IF NOT EXISTS
Run Code Online (Sandbox Code Playgroud)

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


Sah*_*hah 5

试试这个:

SELECT * 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'DBName' AND TABLE_NAME = 'TableName'
Run Code Online (Sandbox Code Playgroud)

要么

CREATE TABLE IF NOT EXISTS 'TableName'
Run Code Online (Sandbox Code Playgroud)