2016-12-17 1 views
-1

Ich versuche, meinen Code eine Zeile in meine Tabelle einfügen thoughtentries. Es ist im public Schema. Ich bin in der Lage ths Befehl ausgeführt werden soll, während eine Verbindung zu meiner Datenbank psql mit:PostgreSQL FEHLER: Relation existiert nicht auf INSERT-Anweisung

INSERT INTO thoughtentries VALUES('12/17/2016 14:10', 'hi');

Die erste Spalte ist von character Typ mit einer Länge von 17. Die zweite Spalte des Typs ist text.

Wenn ich meinen Code versucht habe mit dem gleichen Befehl INSERT oben ich den Fehler im Log erhalten:

ERROR: relation "thoughtentries" does not exist at character 13 STATEMENT: INSERT INTO thoughtentries VALUES('12/17/2016 14:11', 'hi');

Ich bin mit pg und pg-format den Befehl zu formatieren. Hier ist mein Code, dies zu tun:

client.connect(function (err) { 
    if (err) throw err 
    app.listen(3000, function() { 
    console.log('listening on 3000') 
    }) 
    var textToDB = format('INSERT INTO thoughtentries VALUES(%s, %s);', timestamp, "'hi'") 
    client.query(textToDB, function (err, result) { 
    if (err) { 
     console.log(err) 
    } 
    console.log(result) 
    client.end(function (err) { 
     if (err) throw err 
    }) 
    }) 
}) 

Wie gehe ich über das beheben?

+0

Es sagt Ihnen deutlich, dass die Tabelle 'thoughtentries' existiert nicht. Sie müssen Ihre Datenbank reparieren. –

+0

@ vitaly-t Die Tabelle existiert, ich habe sie verifiziert, indem ich Zeilen mit dem obigen Befehl INSERT einfügen konnte. –

Antwort

0

Haben Sie überprüft, dass die Tabelle tatsächlich im public-Schema erstellt wurde?

SELECT * 
FROM information_schema.tables 
WHERE table_name = 'thoughtentries'; 

Sobald Sie sich vergewissert haben, dass, ich sehe zwei mögliche Erklärungen Rest:

  1. Sie versehentlich in eine andere Datenbank zu verbinden. Stellen Sie sicher, in der gleichen Sitzung mit:

    select current_database(); 
    
  2. Ihre search_path Einstellung nicht das public Schema enthält. Wenn das der Fall ist, können Sie das Tabellenschema qualifizieren zu beheben: public.thoughtentries

Abgesehen: Speichern Zeitstempel als Datentyp timestamp, nicht character(17).
Eigentlich haben character(n) nicht verwenden:

+0

Vielen Dank für Ihre Antwort. –

+0

Woher weiß ich, ob ich über meinen Code eine Verbindung zu einer anderen Datenbank herstelle? Ich habe versucht public.thattentries und das gibt die gleiche Fehlermeldung. Ich werde mich mehr mit der Suche nach meinem Suchpfad befassen. –

+0

@AntonioCucciniello: Überprüfen Sie, dass Sie sich mit derselben Datenbank am gleichen Host-Port verbinden. Und ich habe oben noch etwas hinzugefügt. –

Verwandte Themen