Dieser Tabelle weise ich einen User mit allen Rechten zu
Wenn ich mit diesem User ein “Select” auf diese Tabelle absetze, erscheint: “Relation xxx existiert nicht”. Wieso will er eine “Relation”?
Wenn ich hingegen diesen Befehl auf der gleichen Datenbank absetze: “SELECT table_name FROM information_schema.tables WHERE table_schema = ‘public’” so kommt brav meine gewünschte Tabelle zurück.
Im pgAdmin sehe ich die Tabelle auch. Was kann denn hier noch schief laufen?
Danke für die Antwort. In der Richtung wird es was sein. Ich lege die Tabelle via “pgAdmin” an und der produziert ein solches SQL:
CREATE TABLE IF NOT EXISTS public.“Test2”
(
“ID” integer,
PRIMARY KEY (“ID”)
);
Kann man das irgendwie nachträglich ändern? Oder besser die Tabelle anders generieren? Wahrscheinlich wäre es besser, ich würde diesen Create-Code per C# als SqlCommand absetzen, oder?
Wenn Du beim Abfragen die exakt gleiche Schreibweise, als in Anführungszeichen Test2
etwa:
Select * from “Test2”
nutzt
und das das einzige Problem ist, sollte es gehen.
Das tut’s leider nicht, kann aber auch sein, dass mein Code zum Erzeugen des SQL-Strings da noch patzt. Aber ich baue jetzt das Erzeugen der Tabellen gleich um, das Thema mit den Anführungszeichen ist ja so oder so schlecht. Da habe ich es lieber sauber. Gut zu wissen, dass Relation = Tabelle ist. Ich denke bei Relation immer an Beziehungen zwischen Tabellen, daher meine Verwirrung.
Yupp, so mache ich das jetzt auch. Ich brauche sowieso einen Code, der die Datenbankstruktur pflegt. Ich habe die Tabelle via pgAdmin nur angelegt, weil ich was testen wollte und falle gleich auf die Nase
Testen ist ja gut! Wenn Du sowieso Code generierst, dann tu Dir ein paar Gefallen:
verwende für kleine oder große eigene Statements (zu Fuß getippt) (Insert, Select, Delete,…) psql console. Kostet nichts und kann alles (oder sogar mehr)
schreibe Code, der nicht “irgendwas” an die DB schickt, sondern Code, der Scripte schreibt.
optional mit einer Variante, die das Script an die DB schickt bzw. es ausführt oder psql übergibt
optional mit einer Variante, die einfach die Generierten Statements auf der Console ausspuckt (dann kann man damit machen, was man will…)
psql ist das hauseigene Standard Werkzeug, einfach aus der DOS Box oder Linux Terminal aufrufen, als passender User natürlich und die richtige DB auswählen (oder interaktiv in psql anpassen)
Danke für die Tipps, die Konsole schaue ich mir an. Die “psql.exe” bringt derzeit noch den Fehler: “Die Rolle KH existiert nicht.” KH wäre mein Windows-Login. Ich nehme an, dass muss noch richtig konfiguriert werden, aber das schaue ich mir an.