【问题标题】:Sql syntax error on DROP TABLEDROP TABLE 上的 Sql 语法错误
【发布时间】:2017-12-29 19:06:24
【问题描述】:

我正在尝试使用以下代码创建一个 MySQL 表:

CREATE DATABASE 
  IF NOT EXISTS myusers;USE 
    DROP TABLE 
    DROP TABLE IF EXISTS `myusers`.`users`;CREATE TABLE `myusers`.`users` 
                 ( 
                              `username`  VARCHAR(45) NOT NULL, 
                              `password`  VARCHAR(45) NULL, 
                              `firstname` VARCHAR(45) NOT NULL, 
                              `lastname`  VARCHAR(45) NULL,
                              `phone`     INT NULL, 
                              PRIMARY KEY (`username`) 
                 )

但是,我收到此错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 'DROP TABLE 附近使用的语法 如果存在则删除表 myusers.users' 在第 2 行

我对 MySQL 的了解有限。根据我对 SQL 语法的了解,这看起来不错。

知道这里可能是什么问题吗?

【问题讨论】:

  • 好像你有两次“DROP TABLE”。我不知道mysql的语法,但这似乎是不正确的。
  • 我也看到 USE 有一个空白。看起来很奇怪
  • 从哪里开始? CREATE DATABASE <name needed here>。然后你有IF NOT EXISTS myusers;USE 这似乎没有意义。等等,等等。我能给出的唯一建议是阅读手册并实际查找您尝试编写的每个单独命令的语法......

标签: mysql sql


【解决方案1】:
  • USE 后面应该跟一个数据库名称。
  • 有额外的DROP Table
  • 先删除表如果存在DROP TABLE IF EXISTS users
  • 然后创建表。

像这样:

CREATE DATABASE IF NOT EXISTS myusers; 
USE myusers;
DROP TABLE IF EXISTS `users`;

CREATE TABLE `myusers`.`users` 
    ( 
    `username`  VARCHAR(45) NOT NULL, 
    `password`  VARCHAR(45) NULL, 
    `firstname` VARCHAR(45) NOT NULL, 
    `lastname`  VARCHAR(45) NULL,
    `phone`     INT NULL, 
    PRIMARY KEY (`username`) 
);

【讨论】:

  • @MatBailie 第一行是创建数据库,如果不存在,我修复了。但是,仍然没有什么意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
相关资源
最近更新 更多