phppgadmin und create script...

Nicht wirklich. Wo benötigst Du zum Erstellen einer Tabelle 40 Spalten? Wenn das oben ein Beispiel ist: das sind 3 Spalten: Spaltenname, Typ und Besonderheiten. Und was willst Du da via Drag&Drop machen?

Willst Du 40 gleich aufgebaute Tabellen anlegen? Dann machst Du vermutlich grundsätzlich was falsch.

nein, keine 40 Tabelle :slight_smile:
40 Spalten und es sind ca. 5 Tabelle. Spreich, wenn jemand das Softwareprojekt in c# haben möchte, dann möchte ich gerne alles per drag&drop machen.
ok, gibt es eine Möglichkeit, alles in einer Datei zu packen, und es per phppgadmin zu integrieren? So ungefähr wie ein Backup.

Ja. Das ist ja das schöne an SQL, daß man es ‘abspielen’ kann. Alles in ein Script und dieses in der DB ausführen. Da brauchst nicht einmal PhpPgAdmin für.

ok,
ich frage jetzt mal anderst:
ich kopiere den Abschnitt:

CREATE TABLE Kunden(
 KundenNr      INTEGER     NOT NULL,
 Anrede        VARCHAR(20) NOT NULL,
 Firma         VARCHAR(50),
 Titel         VARCHAR(30),
 Name          VARCHAR(30) NOT NULL,
 Vorname       VARCHAR(30),
 eMail         VARCHAR(50) NOT NULL,
 Passwort      VARCHAR(8)  NOT NULL,
 KundeSeit     DATE        NOT NULL,
 CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));

Dann logge ich mich in phppgadmin ein

  • klick auf DATABASEA
  • klick auf SQL
  • Rechtsklick auf die Eingebefeld, einfügen.
  • klick auf Ausführen

Es kommt:

SQL-Fehler:

ERROR:  syntax error at or near "CREATE"
LINE 1: SELECT COUNT(*) AS total FROM (CREATE TABLE Kunden(
                                       ^

jetzt verstehst du was ich meine?

Ich hab das obige via Copy&Paste in psql übertragen - funzt, sieh selbst:

test=# CREATE TABLE Kunden(
test(#  KundenNr      INTEGER     NOT NULL,
test(#  Anrede        VARCHAR(20) NOT NULL,
test(#  Firma         VARCHAR(50),
test(#  Titel         VARCHAR(30),
test(#  Name          VARCHAR(30) NOT NULL,
test(#  Vorname       VARCHAR(30),
test(#  eMail         VARCHAR(50) NOT NULL,
test(#  Passwort      VARCHAR(8)  NOT NULL,
test(#  KundeSeit     DATE        NOT NULL,
test(#  CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));
CREATE TABLE
test=*#

so gehe ich erst einmal von einem Copy&Paste - Fehler Deinerseits aus - bis zum Beweis des Gegenteils. Starkes Indiz ist ja schon mal die Fehlermeldung, gell?

Das ist ein (bekannter?) Fehler von diesem komischen php tool. Das versucht wohl für jedes Statement die Anzahl der Datensätze zu ermitteln und packt noch ein select count(*) außenrum - was ziemlich dämlich ist, weil ja nicht alle Statements auch wirklich Daten zurück liefern.

Siehe z.B. hier: postgresql - Postgres sql insert query syntax error from phpPgAdmin - Stack Overflow

Verwende lieber einen anderen SQL Client.
Eine Übersicht findest Du hier: Community Guide to PostgreSQL GUI Tools - PostgreSQL wiki

facepalm

SQL-Fehler:

ERROR:  syntax error at or near "=#"
LINE 1: SELECT COUNT(*) AS total FROM (test=# CREATE TABLE Kunden(
                                           ^

In der Anweisung:

SELECT COUNT(*) AS total FROM (test=# CREATE TABLE Kunden(
test(#  KundenNr      INTEGER     NOT NULL,
test(#  Anrede        VARCHAR(20) NOT NULL,
test(#  Firma         VARCHAR(50),
test(#  Titel         VARCHAR(30),
test(#  Name          VARCHAR(30) NOT NULL,
test(#  Vorname       VARCHAR(30),
test(#  eMail         VARCHAR(50) NOT NULL,
test(#  Passwort      VARCHAR(8)  NOT NULL,
test(#  KundeSeit     DATE        NOT NULL,
test(#  CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));
CREATE TABLE
test=*#) AS sub

ich mach irgendwo einen Denkfehler ?!

Seufz

wenn ich psql aufrufe, bekomme ich diese Ausgabe:

Expanded display is used automatically.
psql (9.5.2)
Type "help" for help.

test=#

Das ist vergleichbar mit einer Unix-Shell oder dem C:\ eines Windows-Kommandozeilenfensters. Es gehört NICHT zum Kommando dazu, was man eingibt.

Du musst natürlich das überflüssig und falsche select count(*) weglassen und nur das CREATE TABLE ausführen.

So was z.B.:

CREATE TABLE Kunden(
 KundenNr      INTEGER     NOT NULL,
 Anrede        VARCHAR(20) NOT NULL,
 Firma         VARCHAR(50),
 Titel         VARCHAR(30),
 Name          VARCHAR(30) NOT NULL,
 Vorname       VARCHAR(30),
 eMail         VARCHAR(50) NOT NULL,
 Passwort      VARCHAR(8)  NOT NULL,
 KundeSeit     DATE        NOT NULL,
 CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));

äääähhhhh ??
DAs habe ich gemacht, geht aber irgendwie nicht.

SQL-Fehler:

ERROR:  syntax error at or near "CREATE"
LINE 1: SELECT COUNT(*) AS total FROM (CREATE TABLE Kunden(
                                       ^

In der Anweisung:

SELECT COUNT(*) AS total FROM (CREATE TABLE Kunden(
 KundenNr      INTEGER     NOT NULL,
 Anrede        VARCHAR(20) NOT NULL,
 Firma         VARCHAR(50),
 Titel         VARCHAR(30),
 Name          VARCHAR(30) NOT NULL,
 Vorname       VARCHAR(30),
 eMail         VARCHAR(50) NOT NULL,
 Passwort      VARCHAR(8)  NOT NULL,
 KundeSeit     DATE        NOT NULL,
 CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr))) AS sub

@akretschmer
ok,ich öffne auf dem Desktop die Datei Tabelle_fure_kunden_erstellen. Dann /alles makieren / rechtsklick kopieren.
Dann öffne ich Putty und logge mich per ssh ein.
Wie bekomme ich jetzt die Zwieschenablage in …

Expanded display is used automatically.
psql (9.5.2)
Type "help" for help.

test=# <<<<<--------- hier rein?

http://lmgtfy.com/?q=putty+paste+zwischenablage

Nein, hast Du nicht:

@castorp
Doch Doch Doch, die Zeile fängst mit create an, komischer Weise bekomme ich die fast die gleiche Fehlermeldung. Du hälst mich bestimmt für verrückt.

@akretschmer
ich hätte schwören können, die rechte Maustaste ging nicht :slight_smile:

tomycat@tomycat:~$ sudo -u postgres psql
[sudo] Passwort für tomycat:
psql (9.4.6)
Type "help" for help.

postgres=# CREATE TABLE Kunden(
postgres(#  KundenNr      INTEGER     NOT NULL,
postgres(#  Anrede        VARCHAR(20) NOT NULL,
postgres(#  Firma         VARCHAR(50),
postgres(#  Titel         VARCHAR(30),
postgres(#  Name          VARCHAR(30) NOT NULL,
postgres(#  Vorname       VARCHAR(30),
postgres(#  eMail         VARCHAR(50) NOT NULL,
postgres(#  Passwort      VARCHAR(8)  NOT NULL,
postgres(#  KundeSeit     DATE        NOT NULL,
postgres(#  CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));
CREATE TABLE
postgres=# \q
tomycat@tomycat:~$

ich habe noch einen user testerb (mit password )mit der Datenbank DATABASEB
Was muss ich tun, wenn ich eine Tabelle in DATABASEB erstellen möchte.

“Was muss ich tun, wenn ich eine Tabelle in DATABASEB erstellen möchte.”

Genau das. Erstelle die Tabelle DORT.

tomycat@tomycat:~$ sudo -u testerb psql
sudo: Unbekannter Benutzer: testerb
sudo: Regelwerks-Plugin konnte nicht initialisiert werden
tomycat@tomycat:~$ sudo -u DATABASEB psql
sudo: Unbekannter Benutzer: DATABASEB
sudo: Regelwerks-Plugin konnte nicht initialisiert werden
tomycat@tomycat:~$

Sorry, ich stelle mich wirklich nicht blöd an, aber wirgendwie sehe ich zuviel Bäume, testerb hat auch ein Password, das wird aber nicht angefragt ?!

dein testerb ist ein DB-User, richtig? Das hat mit dem OS, was drunter liegt, so ziemlich exakt gar nichts zu tun. Also auch nichts mit sudo.

ok, habe verstanden, es ist kein echer User nur ein Postgres User. Das heist ich logge mich mit postgres ein + PAssword.

tomycat@tomycat:~$ psql -d DATABASEB
psql (9.4.6)
Type "help" for help.

DATABASEB=> CREATE TABLE Kunden(
DATABASEB(>  KundenNr      INTEGER     NOT NULL,
DATABASEB(>  Anrede        VARCHAR(20) NOT NULL,
DATABASEB(>  Firma         VARCHAR(50),
DATABASEB(>  Titel         VARCHAR(30),
DATABASEB(>  Name          VARCHAR(30) NOT NULL,
DATABASEB(>  Vorname       VARCHAR(30),
DATABASEB(>  eMail         VARCHAR(50) NOT NULL,
DATABASEB(>  Passwort      VARCHAR(8)  NOT NULL,
DATABASEB(>  KundeSeit     DATE        NOT NULL,
DATABASEB(>  CONSTRAINT PK_Kunden PRIMARY KEY (KundenNr));
CREATE TABLE
DATABASEB=> ^C

so gehts :slight_smile:

Jetzt möchte ich das gleiche unter phppgadmin machen, aber wie?