MySQL 创建表 IF NOT EXISTS 语法错误

Posted

技术标签:

【中文标题】MySQL 创建表 IF NOT EXISTS 语法错误【英文标题】:MySQL Create table IF NOT EXISTS syntax error 【发布时间】:2018-10-17 07:27:33 【问题描述】:

我是 mysql 的新手,我正在尝试了解命令,我认为从如何制作表开始可能不是一个坏主意。

但是,我在网上找到的唯一命令一直返回语法错误。我一定是做错了什么,你们知道是什么吗?

CREATE TABLE [IF NOT EXISTS] test (test_column date);

-纳坦

编辑1:

如果您投反对票,请留下原因,并准备好在我修复后将其删除。

编辑2:

*** 将此问题识别为与完全不同的问题重复。所以我现在需要解释原因。特此: 我的问题是关于create table 语句,这个persons 代码要复杂得多,而且关于IF 语句。

【问题讨论】:

[] 的语法无效。它可能是为了象征一个可选参数,但您应该从查询中删除它们。 MySQL create database if not exist的可能重复 还有@johan,也谢谢你。我现在觉得自己很傻。 别担心,这里的每个人都做过类似的事情,这是作为开发人员的一部分:) 您可能需要阅读 mysql 文档dev.mysql.com/doc/refman/8.0/en/manual-conventions.html中的排版和语法约定 【参考方案1】:

您的查询必须如下所示:

CREATE TABLE IF NOT EXISTS test (test_column date);

[IF NOT EXISTS] 这是您可以省略的部分,它不是必需的(这就是它在括号中的原因)。这意味着您可以在没有这部分的情况下运行查询,例如:

CREATE TABLE test (test_column date);

但在这种情况下,如果表 test 已经存在,您的查询将失败。

【讨论】:

我会在一分钟内将此标记为答案。谢谢!【参考方案2】:

试试下面

CREATE TABLE IF NOT EXISTS test (
    test_column date
)  

【讨论】:

@ThatOne,这不是必需的

以上是关于MySQL 创建表 IF NOT EXISTS 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

IF 语句返回 #1064 的 MySQL 触发器

MySQL 创建数据表

mysql中的if语句和while语句

MySQL SELECT IF ID 在其他表中

如何使用一条mysql语句实现如果查询到的数据不存在就创建

带有 IF 语句的 MySQL VIEW