【问题标题】:Stuck on a SQL Syntax error遇到 SQL 语法错误
【发布时间】:2016-09-09 11:13:56
【问题描述】:

我对我的 SQL 模型有点坚持。我使用 MySQL Workbench 以图形方式创建模型,并创建了一个我认为适合我的用例的模式。但是我无法与数据库同步,因为它给了我以下错误。也许其他人可以看到我做错了什么。显然我现在是盲人......

在服务器中执行 SQL 脚本 ERROR: Error 1064: You have an error in 你的 SQL 语法;检查与您的 MariaDB 对应的手册 在 'NULL DEFAULT 附近使用正确语法的服务器版本 CURRENT_TIMESTAMP, last_activity 日期时间空默认空, ' 在第 6 行

SQL Code:
        CREATE TABLE IF NOT EXISTS `topas`.`user` (
          `id` INT(255) NOT NULL AUTO_INCREMENT,
          `username` VARCHAR(50) NOT NULL,
          `email` VARCHAR(80) NULL DEFAULT NULL,
          `password` VARCHAR(250) NOT NULL,
          `created_at`  NULL DEFAULT CURRENT_TIMESTAMP,
          `last_activity` DATETIME NULL DEFAULT NULL,
          UNIQUE INDEX `username_UNIQUE` (`username` ASC),
          UNIQUE INDEX `email_UNIQUE` (`email` ASC),
          UNIQUE INDEX `id_UNIQUE` (`id` ASC),
          PRIMARY KEY (`id`))
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8

SQL script execution finished: statements: 3 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

谢谢。

【问题讨论】:

标签: mysql workbench


【解决方案1】:

这一行:

`created_at`  NULL DEFAULT CURRENT_TIMESTAMP,

缺少类型定义。应该是:

`created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP,

【讨论】:

    【解决方案2】:

    此行缺少数据类型

    `created_at`  NULL DEFAULT CURRENT_TIMESTAMP,
    

    您需要将其设置为TIMESTAMPDATETIME

    `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
    `created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
    

    【讨论】:

      【解决方案3】:

      您缺少created_at 列的列类型。
      应该是:

      `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多