Ich habe eine Postgres-Datenbank, die ich über Python über die psycopg2
-Bibliothek zugreifen. Die Tabelle I in einfügen bin versucht, sieht wie folgt aus:psycopg2 kann nicht in bestimmte Spalten eingefügt werden
Table "public.programmes"
Column | Type | Modifiers | Storage | Stats target | Description
-------------+-----------------------------+---------------------------------------------------------+----------+--------------+-------------
id | bigint | not null default nextval('programmes_id_seq'::regclass) | plain | |
title | character varying | not null | extended | |
start | timestamp without time zone | not null | plain | |
end | timestamp without time zone | not null | plain | |
description | character varying | not null | extended | |
genre | character varying | not null | extended | |
edited | boolean | not null | plain | |
wo die id
Spalte als bigserial
-autoincrement neue Einträge erstellt wurde.
Da die Spalte id
automatisch inkrementiert wird, versuche ich nur Daten zu den verbleibenden Feldern einzufügen. Ich erstelle die Daten als Liste und versuchen, es wie folgt einzufügen:
def main():
postConn = psycopg2.connect("dbname=TEST host=127.0.0.1 user=user")
postCur = postConn.cursor()
prog_data = form_programme_data()
#prog_data = ['The Next Step', '2016-05-29T10:20:00', '2016-05-29T10:45:00', "2/34. My Boyfriend's Back: Reality-style drama following a group of dancers. A-Troupe meets their new choreographer and votes for open auditions for the nationals team. Also in HD. [S]", 'Lifestyle', False]
postCur.execute("""INSERT INTO programmes(title, start, end, description, genre, edited) VALUES (%s, %s, %s, %s, %s, %s);""", prog_data)
und ich erhalte diesen Fehler ausgelöst:
Traceback (most recent call last):
File "convert_db.py", line 58, in <module>
main()
File "convert_db.py", line 32, in main
postCur.execute("""INSERT INTO programmes(title, start, end, description, genre, edited) VALUES (%s, %s, %s, %s, %s, %s);""", prog_data)
psycopg2.ProgrammingError: syntax error at or near "end"
LINE 1: INSERT INTO programmes(title, start, end, description, genre...
^
Wenn ich ohne Angabe der Spaltennamen einzufügen versuchen, sie erwartet ein Wert für die id
die ich nicht anfassen kann. Es beschwert sich nicht über die ersten zwei angebotenen Spaltennamen, aber nicht end
aus irgendeinem Grund.
Jede Hilfe wird geschätzt.
Danke. Sie und advance512 hatten recht, als "Ende" ein Schlüsselwort war und ich habe Zitate hinzugefügt und es hat wie beabsichtigt funktioniert! Noch einmal vielen Dank. – Shiri
Akzeptieren Sie die Antwort, wenn es für Sie funktioniert, wäre dankbar :) – advance512