Seite 1 von 1

Tabelleninhalt kopieren (SQL)

Verfasst: Mi, 23.12.2015 11:45
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?

Re: Tabelleninhalt kopieren (SQL)

Verfasst: Mi, 23.12.2015 12:13
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

Re: Tabelleninhalt kopieren (SQL)

Verfasst: Mi, 23.12.2015 16:46
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