卡在SQL语法错误上

时间:2016-09-09 11:13:57

标签: mysql workbench

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

  

在服务器中执行SQL脚本错误:错误1064:您有错误   你的SQL语法;查看与MariaDB对应的手册   服务器版本,用于在'NULL DEFAULT附近使用正确的语法   CURRENT_TIMESTAMP,         last_activity DATETIME NULL DEFAULT NULL,         '在第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

感谢。

3 个答案:

答案 0 :(得分:1)

这一行:

`created_at`  NULL DEFAULT CURRENT_TIMESTAMP,

缺少类型定义。它应该是:

`created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP,

答案 1 :(得分:1)

此行缺少数据类型

`created_at`  NULL DEFAULT CURRENT_TIMESTAMP,

您需要将其设置为TIMESTAMPDATETIME

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

答案 2 :(得分:0)

您错过了created_at列的列类型 应该是:

`created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,