Ich suche nach einer einfachen Möglichkeit, alle Spalten außer einer in psql auszuwählen.
Mit psql
meine ich die interaktive Kommandozeile.
Ich würde mich über ein Tool freuen, das sich *
zu einer Liste zitierter Spaltennamen erweitert. Dann könnte ich die Säule entfernen, um sie von Hand zu entfernen.
Meine Frage betrifft nur die interaktive Verwendung von psql. Es ist kein Duplikat von Fragen von Personen, die mit dem SQL-Standard unzufrieden sind und etwas wie "select * -foo" ausführen möchten.
postgresql
psql
guettli
quelle
quelle
information_schema
über eine pl / pgsql-Funktion abfragen, um eine Liste ziemlich einfach zu generieren, aber auf diese Weise wären es zwei Abfragen.desc
Befehl inpsql
Antworten:
So erhalten Sie die Liste der Spalten in der Standardreihenfolge ohne die fehlerhafte Spalte:
Oder nur,
WHERE attrelid = 'mytable'::regclass
wenn Sie dem Suchpfad vertrauen , dass er in das richtige Schema aufgelöst wird.quote_ident()
fügt bei Bedarf doppelte Anführungszeichen hinzu.Ich habe die gleiche Frage 2007 auf pgsql-general gestellt . Es war damals Postgres 8.2. Süße Erinnerungen ...
Verbunden:
quelle
\dq thetable bad_column
.q
für die Aufgabe zuzuweisen . Vielleicht eine allgemeine Option für die gesamte\d
Befehlsfamilie, um eine bloße Liste verketteter Namen anzuzeigen? Wie\d- tbl
(Mnemonik: das Gegenteil von\d+
, das mehr Details zeigt ). Dies würde es ermöglichen, grundsätzlich jede bloße Liste von Objekten zu erhalten. Tabellen in einem Schema :\dt- public.*
, Funktionen, die mit "f_foo" beginnen:\df- f_foo*
usw. - oder Spalten in einer Tabelle :\d- mytbl
. Ähnlich wie der Shell-Befehlls
...Ich glaube, ich habe gefunden, wonach Sie suchen, aber ich habe es nicht selbst getestet.
Es gibt eine Software namens SequelPro, mit der Sie die Felder aus einer bestimmten Tabelle auswählen können, die jedoch nur für MySQL gilt. Bitte lesen Sie von unten irgendwo in der Mitte der Seite:
Es gibt eine andere Software namens PSequel, die nur auf Mac läuft und behauptet, sie sei vom Typ SequelPro, der für Postgres entwickelt wurde:
Hoffe das hilft.
quelle