0

Ich benutze Evolutions, um eine Datenbank aufzubauen. Mein 1.sql ist:Evolutions sagt, dass mein SQL einen Syntaxfehler hat

# 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 

Wenn ich meine Web-app starten läuft, bekomme ich diese Fehlermeldung von Evolutions:

wir haben die folgende Fehlermeldung:

ERROR: syntax error at or near "user" Position: 14 [ERROR:0, SQLSTATE:42601], while trying to run this SQL script:

Ich bin ratlos, weil als Soweit ich das beurteilen kann, ist es syntaktisch in Ordnung.

(Bild here)

(Mein Web-App sind die play-slick3-steps App, sondern von MySQL PostgreSQL als Datenbank verwenden)

+3

Was ist das für ein Backtick, nachdem das Feld 'id' ausgeführt wurde? Fehler kopieren/einfügen? – slouc

+0

Es gibt kein 'AUTO_INCREMENT' in Postgres –

Antwort

3

user ist ein reserviertes Wort in Postgres. Sie könnten entweder entkommen durch Anführungszeichen (" s) mit:

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 
) 

Oder, noch besser, ändert seinen Namen in etwas, das nicht ein reserviertes Wort ist, wie users (in der Mehrzahl) zum Beispiel.

+0

Es gibt auch kein' AUTO_INCREMENT' in Postgres. Es sollte "id bigserial Primärschlüssel" sein –