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?
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
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
Jetzt möchte ich das gleiche unter phppgadmin machen, aber wie?
tausche es kurz vor Benutzung gegen psql aus
Zur Not auch PGAdmin. Das PHP-Geraffel ist Müll.