Evolutions 说我的 SQL 有语法错误
Evolutions is saying my SQL has a syntax error
我正在使用 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
当我启动 运行 我的 Web 应用程序时,我收到来自 Evolutions 的错误消息:
我们收到以下错误:
ERROR: syntax error at or near "user" Position: 14 [ERROR:0, SQLSTATE:42601], while trying to run this SQL script:
我很困惑,因为据我所知,它在语法上没问题。
(图片here)
(我的网络应用程序是 play-slick3-steps 应用程序,但使用 PostgreSQL 作为数据库而不是 MySQL)
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
(复数形式)。
我正在使用 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
当我启动 运行 我的 Web 应用程序时,我收到来自 Evolutions 的错误消息:
我们收到以下错误:
ERROR: syntax error at or near "user" Position: 14 [ERROR:0, SQLSTATE:42601], while trying to run this SQL script:
我很困惑,因为据我所知,它在语法上没问题。
(图片here)
(我的网络应用程序是 play-slick3-steps 应用程序,但使用 PostgreSQL 作为数据库而不是 MySQL)
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
(复数形式)。