Postgres query-Fehler
Ich habe eine Abfrage in postgres
insert into c_d (select * from cd where ak = '22019763');
Und ich bekomme die folgende Fehlermeldung
ERROR: column "region" is of type integer but expression is of type character varying
HINT: You will need to rewrite or cast the expression.
sind Sie sicher, dass die c_d und-und cd-Tabelle die gleichen Felder bestellen? ansonsten geben Sie explizit an, die Felder in Ihrer Abfrage
Es gibt mehr Felder in der c_d Tabelle als in der cd-Tabelle. Gibt es andere Wege, dies zu tun?
Es gibt mehr Felder in der c_d Tabelle als in der cd-Tabelle. Gibt es andere Wege, dies zu tun?
InformationsquelleAutor Roland | 2009-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer
INSERT INTO table1 SELECT * FROM table2
hängt ganz davon ab um der Spalten, die Teil der Tabellendefinition. Es wird jede Spalte von Tabelle1 mit der Spalte von Tabelle 2 mit dem gleichen um Wert, unabhängig von Namen.Das problem, das Sie hier haben, ist was auch immer Spalte von der cd mit der gleichen Wert wie c_d der Tabelle "region" hat mit einem inkompatiblen Typ, und eine implizite Typumwandlung ist nicht verfügbar deaktivieren Sie die Verwirrung.
INSERT INTO SELECT *
Aussagen sind stilistisch schlecht, es sei denn, die beiden Tabellen definiert sind, und wird für immer definiert werden, genau die gleiche Weise. Alles was es braucht ist eine einzelne zusätzliche Spalte Hinzugefügt werden, um cd, und Sie werden anfangen, Fehler zu überflüssigen zusätzlichen Spalten.Wenn es ist überhaupt möglich, was würde ich vorschlagen, ist ausdrücklich rief der Spalten innerhalb der
SELECT
- Anweisung. Sie rufen eine Funktion zu ändern, geben Sie in jeder Spalte Referenzen (oder definieren Sie eine neue Typ-cast zu diesem implizit -- sieheCREATE CAST
), und Sie könnenAS
um die Spalte label zu entsprechen, die Ihrer Spalte Ziel.Wenn Sie nicht tun können diese aus irgendeinem Grund deuten darauf hin, dass die in Ihrer Frage.
INSERT INTO tablename (col1, col2, col3) SELECT * FROM ...
InformationsquelleAutor Ed Carrel
Check-out der PostgreSQL legen Sie die Dokumentation. Die syntax ist:
denen hier Aussehen würde, so etwas wie:
Dies ist die syntax, die Sie verwenden möchten, beim einfügen von Werten aus einer Tabelle in eine andere, wo die Spalte Typen und die Reihenfolge sind nicht genau das gleiche.
InformationsquelleAutor Amanda Nyren