MySQL"CREATE TABLE IF NOT NOT EXISTS" - >错误1050

use*_*559 57 mysql sql mysql-error-1050

使用命令:

CREATE TABLE IF NOT EXISTS `test`.`t1` (
    `col` VARCHAR(16) NOT NULL
) ENGINE=MEMORY;
Run Code Online (Sandbox Code Playgroud)

在MySQL Query Browser中运行两次会导致:

表't1'已存在错误1050

我原本以为创建表"IF NOT EXISTS"不会抛出错误.我错过了什么或这是一个错误吗?我正在运行5.1版.谢谢.

Eli*_*Eli 46

在5.0.27中对我来说很好

我只是得到表存在的警告(而不是错误);

  • 谢谢Eli,你是对的.这是我的第三方客户端软件提出此警告作为我的例外,这是我的问题. (4认同)

gdt*_*gdt 25

如前所述,这是一个警告而不是错误,但是(如果像我一样)你希望事情在没有警告的情况下运行,你可以禁用该警告,然后在完成后重新启用它.

SET sql_notes = 0;      -- Temporarily disable the "Table already exists" warning
CREATE TABLE IF NOT EXISTS ...
SET sql_notes = 1;      -- And then re-enable the warning again
Run Code Online (Sandbox Code Playgroud)


小智 10

create database if not exists `test`;

USE `test`;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

/*Table structure for table `test` */

***CREATE TABLE IF NOT EXISTS `tblsample` (
  `id` int(11) NOT NULL auto_increment,   
  `recid` int(11) NOT NULL default '0',       
  `cvfilename` varchar(250)  NOT NULL default '',     
  `cvpagenumber`  int(11) NULL,     
  `cilineno` int(11)  NULL,    
  `batchname`  varchar(100) NOT NULL default '',
  `type` varchar(20) NOT NULL default '',    
  `data` varchar(100) NOT NULL default '',
   PRIMARY KEY  (`id`)
);***
Run Code Online (Sandbox Code Playgroud)


Sac*_*rse 7

您可以使用以下查询在MySql中创建到特定数据库的表。

create database if not exists `test`;

USE `test`;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

/*Table structure for table `test` */

CREATE TABLE IF NOT EXISTS `tblsample` (

  `id` int(11) NOT NULL auto_increment,   
  `recid` int(11) NOT NULL default '0',       
  `cvfilename` varchar(250)  NOT NULL default '',     
  `cvpagenumber`  int(11) NULL,     
  `cilineno` int(11)  NULL,    
  `batchname`  varchar(100) NOT NULL default '',
  `type` varchar(20) NOT NULL default '',    
  `data` varchar(100) NOT NULL default '',
   PRIMARY KEY  (`id`)

);
Run Code Online (Sandbox Code Playgroud)