Sto tentando di utilizzare la funzione currval
di PostgreSQL per restituire l'ultimo ID di riga inserito di una tabella denominata Concept
. Concept
ha una chiave primaria seriale denominata cid
e c'è stata una sequenza generata automaticamente denominata Concept_cid_seq
.currval Funzione in PostgreSQL che lamenta che "la colonna non esiste"
provo la seguente dichiarazione e ottengo un errore:
SELECT currval("Concept_cid_seq");
ERROR: column "Concept_cid_seq" does not exist
LINE 1: SELECT currval("Concept_cid_seq");
^
********** Error **********
ERROR: column "Concept_cid_seq" does not exist
SQL state: 42703
Character: 16
Ma quando ho eseguito la query:
SELECT * from "Concept_cid_seq";
ottengo una tabella con una riga (come mi aspetto) che mostra colonne come last_value, start_value, ecc ...
Cosa mi manca qui? Sto passando l'informazione sbagliata a currval? Perché dice che la "colonna non esiste?"
La documentazione utilizza virgolette singole, '''' invece di '" "'. vedi ancora lo stesso errore con entrambi gli stili delle quote? – SingleNegationElimination
si accenna anche che il caso della sequenza è normalizzato in lettere minuscole a meno che contenga doppie virgolette, quindi dovresti probabilmente avere "currval ('" Concept_cid_seq "') ... – SingleNegationElimination
@TokenMacGuy Sì, l'ho provato in entrambi i modi . Se uso le virgolette singole, non mantiene la maiuscola, quindi l'errore diventa "ERRORE: relazione" concept_cid_seq "non esiste". Mi chiedo se ci sia un qualche significato nel fatto che in questo caso lo chiami una relazione anziché una colonna ... – Drewmate