【问题标题】:Delete table and create table again删除表并重新创建表
【发布时间】:2014-01-29 07:13:40
【问题描述】:

我正在使用 MySQL 6.0 Workbench,但在删除表(如果存在)并创建新表脚本时遇到问题。

下面是我的sql脚本。

delimiter $$

DROP TABLE IF EXISTS `tableName`;
CREATE TABLE `tableName` (
  `column1` varchar(45) NOT NULL,
  `column2` varchar(45) NOT NULL,
   PRIMARY KEY (`column1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$

错误信息:

Syntax error near CREATE TABLE `tableName`

我做错了什么?

【问题讨论】:

标签: mysql sql database syntax syntax-error


【解决方案1】:

更新答案

您还需要在DROP TABLE 语句中使用分隔符$$

delimiter $$

DROP TABLE IF EXISTS `tableName`$$ 

CREATE TABLE `tableName` (
  `column1` varchar(45) NOT NULL,
  `column2` varchar(45) NOT NULL,
   PRIMARY KEY (`column1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$

【讨论】:

  • 删除CHARSET=latin1之后的$$
【解决方案2】:

使用下面的sql:

drop table if exists test;
create table test(
  var1 int,
  var2 int
)

小提琴:http://sqlfiddle.com/#!2/a6e60

【讨论】:

  • 这不起作用。将整个脚本添加到问题中
【解决方案3】:

这对我有用

DROP TABLE IF EXISTS `tableName`;

CREATE TABLE `tableName` (
  `column1` varchar(45) NOT NULL,
  `column2` varchar(45) NOT NULL,
   PRIMARY KEY (`column1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

sqlfiddle

也许你需要检查你的“`”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2018-01-05
    相关资源
    最近更新 更多