Problem mit PostgreSQL Syntax

Hallo!

arbeite gerade zum ersten Mal mit PostgreSQL.
Möchte aus einem Java-Programm heraus eine Tabelle anlegen, der
Code dazu ist folgender:

…//Verbindungsaufbau etc.
st.execute(“CREATE SEQUENCE seq_test1 INCREMENT 1 MINVALUE 1”);
st.execute(“CREATE TABLE productos (producto_id INTEGER DEFAULT nextval(‘seq_test’), nombre VARCHAR(70), descripcion VARCHAR(250), precio DECIMAL(4,2), unidades_disponibles INTEGER(4), PRIMARY KEY
(id));”);

Ich denke, die SQL-Syntax stimmt, doch ich bekomme den Fehler:

ERROR: syntax error at or near “(”, der sich wohl auf die öffnende
Klammer im CREATE Statement bezieht (vor producto_id), denn der
CREATE SEQUENCE-Aufruf alleine bereit keine Probleme.

Hat jmd. einen Tipp für mich?

vielen Dank!

Hallo johannita82,

Nein, der Syntax stimmt nicht! Den Typ “INTEGER(4)” gibt es nicht, richtig muss es heißen “INTEGER”. Und den Namen “id” gibt es auch nicht!

Für producto_id solltest Du den Typ SERIAL verwenden. Das vereinfacht die Sache. Details kannst Du hierzu in der Doku nachlesen.

Um Fehler auszuschließen solltest Du vorab den SQL-Code z.B. mit PGAdmin überprüfen!



mfg

fristo

Hallo fristo!

vielen Dank für deine Hinweise! hast natürlich recht und jetzt funktioniert es auch :slight_smile: