sql-MySQL“如果不存在则创建表”->错误1050

使用命令:

CREATE TABLE IF NOT EXISTS `test`.`t1` (

`col` VARCHAR(16) NOT NULL

) ENGINE=MEMORY;

在MySQL查询浏览器中运行两次会导致:

表't1'已经存在错误1050

我本以为创建表“ IF NOT EXISTS”不会引发错误。 我是否缺少某些东西或这是一个错误? 我正在运行5.1版。 谢谢。

8个解决方案

46 votes

在5.0.27中对我有效

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

Eli answered 2019-11-09T19:39:06Z

24 votes

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

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

gdt answered 2019-11-09T19:39:30Z

7 votes

您可以使用以下查询在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`)

);

Sachin Parse answered 2019-11-09T19:39:53Z

3 votes

我有一个解决方案,可能也适用于您。 我的数据库处于sudo失败的状态,因为它找不到表...但是CREATE TABLE也失败了,因为MySQL认为该表存在。 (此状态很容易使您的IF NOT EXISTS子句混乱。)

我最终找到了这个解决方案:

sudo mysqladmin flush-tables

对我来说,如果没有2607023841468486656,我会遇到以下错误:

mysqladmin: refresh failed; error: 'Access denied; you need the RELOAD privilege for this operation'

(在OS X 10.6上运行)

Craig Walker answered 2019-11-09T19:40:36Z

3 votes

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`)

);***

Balkishan answered 2019-11-09T19:40:53Z

0 votes

我在debian上遇到了与@CraigWalker类似的问题:我的数据库处于drop database test失败的状态,因为它找不到表,但是mysqldump也失败了,因为MySQL认为该表仍然存在。 因此,当我查看phpmyadmin时,损坏的表仍然存在,尽管它并不存在。

我通过复制包含数据库的整个文件夹来创建此状态,该数据库包含一些drop database test和一些mysqldump表

cp -a /var/lib/mysql/sometable /var/lib/mysql/test

(不建议这样做!)

在phpmyadmin的新数据库drop database test中看不到的所有InnoDB表。

drop database test也没有帮助。

我的解决方案:我不得不使用drop database test删除新的测试数据库,而改为使用mysqldump复制它:

mysqldump somedatabase -u username -p -r export.sql

mysql test -u username -p < export.sql

rubo77 answered 2019-11-09T19:41:50Z

0 votes

如果有人在Phpmyadmin导出后出现此错误,则使用自定义选项并添加“删除表”语句可以清除此问题。

nizz0k answered 2019-11-09T19:42:14Z

-1 votes

使用以下参数创建mysql连接。 “'raise_on_warnings':错误”。 它将忽略警告。 例如

config = {'user': 'user','password': 'passwd','host': 'localhost','database': 'db', 'raise_on_warnings': False,}

cnx = mysql.connector.connect(**config)

Vinay answered 2019-11-09T19:42:38Z

mysql 1050_sql-MySQL“如果不存在则创建表”-错误1050相关推荐

  1. android sqlite 创建空表,sqlite3在android中创建表错误(sqlite3 create table error in android)...

    sqlite3在android中创建表错误(sqlite3 create table error in android) 我试图在android中使用sqlite3创建表我的开放助手是这样的: pub ...

  2. flask mysql orm,flask的orm框架(Flask-SQLAlchemy)-创建表

    标签: # 转载请留言联系 ORM 是什么? ORM,Object-Relation Mapping.意思就是对象-关系映射.ORM 主要实现模型对象到关系数据库数据的映射. 优点 : 只需要面向对象 ...

  3. 删表出现mysql错误1051_无法删除mySQL表. (错误1050)

    我有一个讨厌的表,不会删除它,它正在阻止我的开发环境刷新:( 我知道这张桌子存在.例- mysql> select * from uc_order_products_qty_vw limit 1 ...

  4. php1064,PHP创建表错误1064

    我试图在mySQL中创建一个表.这是我下面的php页面,当我运行页面时没有错误但是表格不在mySQL中,当我在mySQL中测试代码时我得到了错误 #1064 – You have an error i ...

  5. mysql交互式创建表_用mysql语句创建数据表详细教程

    MySQL不仅用于表数据操纵,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理. 一般有两种创建表的方法: 1.使用具有交互式创建和管理表的工具: 2.表也可以直接用MySQL语句操纵. ...

  6. MySQL笔记创建表结构_MySQL表结构笔记9

    本篇大纲 MySQL数据表 创建表 创建主键 AUTO_INCREATE 指定默认值 更新表结构 删除表,重命名表 01:表 MySQL 数据库的表是一个二维表,由一个或多个数据列构成 每个数据列都有 ...

  7. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  8. mysql 错误号1005_mysql - 错误代码:1005。无法创建表'...'(错误号:150)

    mysql - 错误代码:1005.无法创建表'...'(错误号:150) 我在互联网上搜索了这个问题的解决方案并检查了SO问题,但没有解决方案适用于我的情况. 我想从表sira_no到metal_k ...

  9. mysql怎么建表_mysql如何创建表

    在mysql中,可以使用"CREATE TABLE"语句创建表:其语法格式为"CREATE TABLE ([表定义选项])[表选项][分区选项];",其中&qu ...

最新文章

  1. Spring_AOP架构介绍与源码分析(含事务深度分析)
  2. 沟通模型包含5个状态
  3. [转载]如何用C#语言构造蜘蛛程序
  4. gitlab汉化及关联LDAP
  5. Python操作DB2数据库
  6. oracle 高级dba,DAVE老师Oracle DBA高级运维深入解析实战班 高级DBA运维视频 Oracle视频教程...
  7. matlab 取模二和,取模(mod)与取余(rem)的区别——Matlab学习笔记
  8. 潘多拉固件设置ipv6_OpenWRT IPv6配置
  9. c语言字符串作业题,C语言课后习题练习(四)
  10. python配置(二)——机器学习环境
  11. Ubuntu16.04安装播放器软件SMPlayer
  12. Spring-Cache
  13. PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
  14. mysql union update_MYSQL:union, 以及常用函数
  15. T88 excel 行高列宽单位
  16. 十五、修改VGG16网络来适应自己的需求
  17. 给未来的你---李开复
  18. Ardupilot chibios编译,启动,main函数学习(2)
  19. 等差素数列--蓝桥杯
  20. 如何控制蜂鸣器的响动频率

热门文章

  1. 等你来杭州限“量”打卡潮流艺术展
  2. HR 绩效管理流程检查表
  3. 卡苹果6plus在线_京津冀互联互通卡实现苹果、安卓机型全覆盖
  4. 论文翻译《Computer Vision for Autonomous Vehicles Problems, Datasets and State-of-the-Art》(第一、二章)
  5. FANUC机器人RSR自动运行模式的相关配置和参数设置(图文)
  6. 注意了:这4种情况下,员工主动辞职,单位也须支付经济补偿
  7. 2021年中式烹调师(中级)考试及中式烹调师(中级)试题及解析
  8. 英语语法学习(一堂课让你懂得英语语法百分之九十五--笔记整理)
  9. Win10家庭版下载安装并启用组策略编辑器
  10. C++中typename用法