Tabelleninhalt kopieren (SQL)

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Franky1112
**
Beiträge: 22
Registriert: Mi, 19.08.2009 13:45

Tabelleninhalt kopieren (SQL)

Beitrag von Franky1112 »

Hallo,

ich versuch einen Tabelleninhalt von einer in eine andere Tabelle zu kopieren.
Hintergrund:
In der alten Tabelle ließ sich der Primäry-Key nicht mehr zu einem Auto-Wert ändern, sondern nur über einen Umweg, indem ich die Tabelle nochmals unter einem anderen Namen erstellt habe.
Damit habe ich es versucht, jedoch ohne erfolg:

Code: Alles auswählen

INSERT INTO "Betriebsstaette" (BSTName, BStNr, PLZ, Ort, Strasse, Hausnummer, Ansprechpartner, Telefon, GebId,  UnternehmerID)
SELECT BSTName, BStNr, PLZ, Ort, Strasse, Hausnummer, Ansprechpartner, Telefon, GebId,  UnternehmerID
FROM "Standortdaten" WHERE "Standortdaten"."ID" <> 0
Dann habe ich es noch damit versucht:

Code: Alles auswählen

INSERT INTO "Betriebsstaette" (BSTName, BStNr)
SELECT BSTName, BStNr
FROM "Standortdaten" WHERE "Standortdaten"."ID" <> 0
bekomme dann die Fehlermeldung
1: Column not found: BSTNAME in statement [INSERT INTO "Betriebsstaette" (BSTName, BStNr)]

Wobei die Spalten definitiv vorhanden sind.

Wie geht's richtig?
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tabelleninhalt kopieren (SQL)

Beitrag von RobertG »

Hallo Franky1112,

Du musst im SQL-Code alle Feldbezeichnungen und Tabellenbezeichnungen in doppelte Anführungszeichen setzen, sofern Du die interne HSQLDB nutzt. Bei externen Datenbanken können die Felder auch anders maskiert sein.
Maskierst Du Feldnamen nicht, so werden sie in Großbuchstaben umgewandelt.

Code: Alles auswählen

INSERT INTO "Betriebsstaette" ("BSTName", "BStNr", "PLZ", ... usw.
Gruß

Robert
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Tabelleninhalt kopieren (SQL)

Beitrag von F3K Total »

... oder du erzeugst doch noch einen Autowert ... das folgende Beispiel, geht dann, wenn alle ID's unterschiedlich sind, es darf keine doppelten geben!
Führe diese Kommandos, angepasst an deine Tabelle, einmal über Extras/SQL... aus_

Code: Alles auswählen

alter Table "Tabelle1" alter column "ID"  INTEGER
alter Table "Tabelle1" alter column "ID"  set NOT NULL;
alter Table "Tabelle1" ADD PRIMARY KEY ("ID");
alter Table "Tabelle1" alter column "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY
Gruß R
Antworten