当前位置: 首页 > 知识库问答 >
问题:

SQL语句“CREATE TABLE TRIP…”中的语法错误

耿玄裳
2023-03-14

我在尝试使用flyway和hibernate为PostgresSql创建表时遇到语法错误的问题。Trip类与其他类没有关系(还没有)。我已经成功地为其他两个类创建了购买和用户,但是这个只是给出了错误。

错误信息:

[错误]测试运行:1,失败:0,错误:1,跳过:0,所用时间:3.003秒

SQL状态:42000错误代码:42000消息:SQL语句“CREATE TABLE TRIP(ID BIGINT默认生成为IDENTITY,TITLE VARCHAR(255)NOT NULL,DESCRIPTION VARCHAR(255),COST INTEGER NOT NULL,LOCATION VARCHAR(124)NOT NULL,DEPARATION DATE NOT NULL,RETURNING DATE NOT NULL,PRIMARY KEY(ID))

我的flyway sql脚本:

create sequence hibernate_sequence start with 1 increment by 1;

create table user_roles (user_email varchar(255) not null, roles varchar(255));

create table users (email varchar(255) not null, firstname varchar(50) not null, middle_name 
varchar(50), surename varchar(50) not null, password varchar(255) not null, address 
varchar(128) not null, postal_code varchar(124) not null, enabled boolean not null, primary 
key (email));

create table purchase (id bigint generated by default as identity, booked_date date not 
null, user_email varchar(255) not null, trip_id bigint not null, primary key (id));

create table trip (id bigint generated by default as identity, title varchar(255) not null, 
description varchar(255), cost integer not null, location varchar(128) not null, departure 
date not null, returning date not null, primary key (id))


alter table user_roles add constraint FKs9rxtuttxq2ln7mtp37s4clce foreign key (user_email)         
references users;

alter table purchase add constraint FKlqrv1aj0pon999jbi5esfpe4k foreign key (user_email) 
references users;

这是我的旅行实体:

package org.studentnr.backend.entities;

import javax.persistence.*;
import javax.validation.constraints.*;
import java.time.LocalDate;

@Entity
public class Trip {

 @Id @GeneratedValue
 private Long id;

 @NotBlank
 @Size(max=255)
 private String title;

 //@NotBlank //TODO: Can be blank???
 @Size(max=255)
 private String description;

 //@Min(0) TODO: remember to add 'check (cost>0)' to flyway to avoid using negative values
 @NotNull
 private Integer cost;

 @NotBlank
 @Size(max = 124)
 private String location;

 @NotNull
 @Future   
 private LocalDate departure;

 @NotNull
 @Future  
 private LocalDate returning;



public Trip(){
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public int getCost() {
    return cost;
}

public void setCost(int cost) {
    this.cost = cost;
}

public String getLocation() {
    return location;
}

public void setLocation(String location) {
    this.location = location;
}

public LocalDate getDepartureDate() {
    return departure;
}

public void setDepartureDate(LocalDate departureDate) {
    this.departure = departureDate;
}

public LocalDate getReturnDate() {
    return returning;
}

public void setReturnDate(LocalDate returnDate) {
    this.returning = returnDate;
}



}

共有1个答案

房新翰
2023-03-14

您的脚本中有两个错误:

  1. 有一个<代码>

如果这两件事被纠正,脚本就起作用了

我还将为外键约束使用更有意义的名称。

 类似资料:
  • 我有一个 springboot 应用程序,我想将我的应用程序连接到 H2 数据库。下面是我的架构。 下面是我的应用程序属性。 但是,我面临以下问题: 由:org.h2.jdbc引起。JdbcSQLSyntaxErrorException:SQL语句“create table employee(id bigint not null auto_increment,email varchar(255),

  • 错误消息: [错误]运行得测试:1,失败:0,错误:1,跳过得:0,运行得时间:3.003s<<<失败!-在org.studentnr.backend.service.userserviceTest[错误]org.studentnr.backend.service.userserviceTest.testCreateUser所用时间:0.004s<<<错误!java.lang.IllegalSta

  • 我从Spring Boot进行了升级 它创建序列,但不创建任何表。查看跟踪,它显示了创建表中的语法错误 SQL:SQL 语句中的语法错误(一个示例): 事实上,检查qith H2控制台或SQl linter它将“IDENTITY[*]”标记为错误,否则它将在H2中工作。 第二次尝试也是失败的。我把 并将Spring文档 https://docs.spring.io/spring-batch/doc

  • SQL查询: 这是一个旧文件,我试图通过phpMyAdmin在HostGator上运行。我收到一个错误,上面写着: MySQL说:#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以在第5行的“)ENGINE=MyISAM”附近使用正确的语法 更新:如果我将语句更改为this,我仍然会收到错误: 我得到错误: 错误1064 (42000):您的SQL语法有错误;检查与您的

  • 问题内容: 我正在尝试在Go中执行MERGE语句: 但是我得到了这个错误: 在MySQL中也是如此: 怎么了? 问题答案: 不支持,等效的是 插入…在重复的密钥更新上 尝试这个, 但请确保将其设置为或。

  • 目录 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 13.1.5. CREATE TABLE语法 13.1.6. DROP DATABASE语法 13.1.7. DROP INDEX语法 13.1.8. DROP TABLE语法