Evolutions说我的SQL有语法错误

时间:2016-03-21 17:17:20

标签: postgresql playframework syntax-error slick playframework-evolutions

我正在使用Evolutions构建数据库。我的1.sql是:

# User schema
# --- !Ups
create table user (
  id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  first_name TEXT NOT NULL,
  last_name TEXT NOT NULL,
  mobile BIGINT NOT NULL,
  email TEXT NOT NULL
)
# --- !Downs
drop table user

当我开始运行我的网络应用程序时,我从Evolutions收到此错误消息:

我们收到以下错误:

  

错误:“user”位置或附近的语法错误位置:14 [ERROR:0,SQLSTATE:42601],尝试运行此SQL脚本时:

我很难过,因为据我所知,它在语法上是正常的。

(图片here

(我的网络应用是play-slick3-steps应用,但使用PostgreSQL作为数据库而不是MySQL)

1 个答案:

答案 0 :(得分:3)

user是Postgres中的保留字。你可以使用引号(" s)来逃避它:

create table "user" (
  id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  first_name TEXT NOT NULL,
  last_name TEXT NOT NULL,
  mobile BIGINT NOT NULL,
  email TEXT NOT NULL
)

或者,更好的是,将其名称更改为不是保留字的内容,例如users(复数形式)。