Absolut!
Begrenzte Listendarstellung
-
- Erfahrener Benutzer
- Beiträge: 7677
- Registriert: So 29. Okt 2006, 13:35
- Wohnort: Kaufbach, Sachsen, Germany, Germany
- Kontaktdaten:
Re: Begrenzte Listendarstellung
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Begrenzte Listendarstellung
Man sollte es nicht glauben,
aber der Ersteller dieser Datenbank arbeitet bei einer Firma die seit den 50er Jahren für die Ergebnisdarstellung der Olympischen Spiele verantwortlich ist.
Egal hab jetzt was ich brauche, kommt Zeit kommt Rat.
Ich Dank euch für eure Geduld
aber der Ersteller dieser Datenbank arbeitet bei einer Firma die seit den 50er Jahren für die Ergebnisdarstellung der Olympischen Spiele verantwortlich ist.
Egal hab jetzt was ich brauche, kommt Zeit kommt Rat.
Ich Dank euch für eure Geduld
Re: Begrenzte Listendarstellung
Hallo da bin ich schon wieder mit einen Problem.
Ich hab eine Datei als "eg2018.csv" angelegt und möchte deren Inhalt in eine vorhandene Tabelle mit dem Befehl
"copy home.shooters from 'C:\eg2018.csv' DELIMITER ',' csv Header;"
auf die auf meinem Home PC angelegte Datenbank einfügen, was auch zu 100% problemlos funktioniert.
Nun zu meinem Problem, wenn ich die Datei mit dem gleichen Befehl in die Orginal Datenbank auf einem raspberry einlesen möchte bekomme ich die
Fehlermeldung:
FEHLER: nur Superuser können COPY mit Dateien verwenden
HINT: Jeder kann COPY mit STDOUT oder STDIN verwenden. Der Befehl \\copy in psql funktioniert auch für jeden
wie würde der Befehl mit STDIN lauten um die Datei einlesen zu können. meine bisherigen Versuche verliefen alle negativ
Gibt es noch andere Möglichkeiten Daten aus einer Datei einzufügen?
die Superuserrechte liegen bei beiden Datenbanken bei postgres die beiden Datenbanken wurden auch mit den gleichen Benutzernamen und Passwörtern installiert.
Vielleicht weiß jemand wie ich das Problem lösen könnte
Hatten die obige Fehlermeldung auch auf meinem 2. PC hatte die Datei dort aber im Ordner Dokumente liegen mit entsprechendem Verzeichnis im Copy Befehl. Als ich die Datei dann direkt auf C:\ legte hat es dann funktioniert.
Ich hab eine Datei als "eg2018.csv" angelegt und möchte deren Inhalt in eine vorhandene Tabelle mit dem Befehl
"copy home.shooters from 'C:\eg2018.csv' DELIMITER ',' csv Header;"
auf die auf meinem Home PC angelegte Datenbank einfügen, was auch zu 100% problemlos funktioniert.
Nun zu meinem Problem, wenn ich die Datei mit dem gleichen Befehl in die Orginal Datenbank auf einem raspberry einlesen möchte bekomme ich die
Fehlermeldung:
FEHLER: nur Superuser können COPY mit Dateien verwenden
HINT: Jeder kann COPY mit STDOUT oder STDIN verwenden. Der Befehl \\copy in psql funktioniert auch für jeden
wie würde der Befehl mit STDIN lauten um die Datei einlesen zu können. meine bisherigen Versuche verliefen alle negativ
Gibt es noch andere Möglichkeiten Daten aus einer Datei einzufügen?
die Superuserrechte liegen bei beiden Datenbanken bei postgres die beiden Datenbanken wurden auch mit den gleichen Benutzernamen und Passwörtern installiert.
Vielleicht weiß jemand wie ich das Problem lösen könnte
Hatten die obige Fehlermeldung auch auf meinem 2. PC hatte die Datei dort aber im Ordner Dokumente liegen mit entsprechendem Verzeichnis im Copy Befehl. Als ich die Datei dann direkt auf C:\ legte hat es dann funktioniert.
-
- Erfahrener Benutzer
- Beiträge: 1140
- Registriert: Fr 20. Jan 2006, 15:30
- Wohnort: Pfalz
- Kontaktdaten:
Re: Begrenzte Listendarstellung
Wenn du dich per psql mit der Datenbank verbindest, sollte der Fileimport mit \copy funktionieren WIMRE. Dazu muß sie dann aber für den Server lokal zugänglich sein.
Im Link ist ein Hinweis, wie du das Skripten kannst. Allerdings für Linux
https://dba.stackexchange.com/questions ... client-app
Gruß Uwe
Im Link ist ein Hinweis, wie du das Skripten kannst. Allerdings für Linux

https://dba.stackexchange.com/questions ... client-app
Gruß Uwe
Re: Begrenzte Listendarstellung
Es reicht, wenn Du das copy in ein \copy änderst:

COPY erwartet die Datei auf dem Server auf dem Postgres läuft - und die wird dann von dem Postgres Prozess gelesen.
Das \copy in psql hingegen liest die Datei auf dem Rechner auf dem psql läuft und schickt sie dann an den Postgres server.
Auch wenn Postgres auf dem gleichen Rechner läuft auf dem Du psql startest, macht dies einen Unterschied.
Code: Alles auswählen
\copy home.shooters from 'C:\eg2018.csv' DELIMITER ',' csv Header;

COPY erwartet die Datei auf dem Server auf dem Postgres läuft - und die wird dann von dem Postgres Prozess gelesen.
Das \copy in psql hingegen liest die Datei auf dem Rechner auf dem psql läuft und schickt sie dann an den Postgres server.
Auch wenn Postgres auf dem gleichen Rechner läuft auf dem Du psql startest, macht dies einen Unterschied.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Re: Begrenzte Listendarstellung
Hat funktioniert, das Login in psql war etwas steinig, hat dann aber doch geklappt, Daten sind drin alles super.
Danke euch für die tolle übersichtliche Anleitung.
Gruß Simar
Danke euch für die tolle übersichtliche Anleitung.
Gruß Simar
Re: Begrenzte Listendarstellung
Hurra die Daten sind drin, aber daraus ergibt sich ein neues Problem. Da sie nur zu einem Ereignis pro Jahr benötigt werden hängen sie den Rest des Jahres in der Suchfunktion und machen diese unübersichtlich.
Lösung 1 die Daten wieder löschen und zum nächsten Termin wieder einspielen
oder Lösung 2, den Namen eine Zahl vorstellen zB "11Name" dann würden sie bei der Suche nicht mehr angezeigt, die Zahl könnte man dann zum nächsten Termin wieder löschen.
Jetzt kenne ich zwar replace(table , 'x', 'y') zum ändern einzelner Zeichen, kann aber nirgends ein passendes Update zum entspechenden voranstellen von Zeichen an einen Feldeintrag.
vorher, nacher
Maier,11Maier
Müller,11Müller
Schmitz,11Schmitz
Vielleicht gibt es ja auch für dieses Problem eine einfache Lösung
Lösung 1 die Daten wieder löschen und zum nächsten Termin wieder einspielen
oder Lösung 2, den Namen eine Zahl vorstellen zB "11Name" dann würden sie bei der Suche nicht mehr angezeigt, die Zahl könnte man dann zum nächsten Termin wieder löschen.
Jetzt kenne ich zwar replace(table , 'x', 'y') zum ändern einzelner Zeichen, kann aber nirgends ein passendes Update zum entspechenden voranstellen von Zeichen an einen Feldeintrag.
vorher, nacher
Maier,11Maier
Müller,11Müller
Schmitz,11Schmitz
Vielleicht gibt es ja auch für dieses Problem eine einfache Lösung
Re: Begrenzte Listendarstellung
Ich würde die Daten nicht ändern.
Füge Deiner Tabelle eine Spalte hinzu welche das Jahr identifiziert und schränke die Suche dann nach dem aktuellen Jahr ein.
Füge Deiner Tabelle eine Spalte hinzu welche das Jahr identifiziert und schränke die Suche dann nach dem aktuellen Jahr ein.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Re: Begrenzte Listendarstellung
die Suchfunktion läuft über die Namensspalte wenn ich also eine Zahl dem Namen voranstelle (11Müller) wird dieser Name bei suche "SELECT name FROM home.shooters WHERE name ILIKE 'M%' " nicht mehr angezeigt.
Wie kann ich die Zahl und den Namen zusammen bringen?
Wie kann ich die Zahl und den Namen zusammen bringen?
Re: Begrenzte Listendarstellung
Wie gesagt: die saubere Lösung ist, eine Spalte die das auf das Jahr eingrenzt:
Code: Alles auswählen
SELECT name
FROM home.shooters
WHERE name ILIKE 'M%'
and jahr = 2018
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'