Bestimmte Spalte einer MySQL-Tabelle bearbeiten
Hallo liebe Community,
Ich habe derzeit 3 MySQL-Tabellen die Postleitzahlen für Deutschland, Österreich und Schweiz enthalten. Nun möchte ich diese 3 Tabellen zusammenfügen, und bei der PLZ das Länderkürzel voranstellen.
Hat eventuell jemand eine Idee wie ich dies bewerkstelligen kann ohne jede spalte einzeln bearbeiten zu müssen.
Der Aufbau der Tabelle ist in dem Foto im Anhang zu sehen.
MfG
TheAlex
Ich habe derzeit 3 MySQL-Tabellen die Postleitzahlen für Deutschland, Österreich und Schweiz enthalten. Nun möchte ich diese 3 Tabellen zusammenfügen, und bei der PLZ das Länderkürzel voranstellen.
Hat eventuell jemand eine Idee wie ich dies bewerkstelligen kann ohne jede spalte einzeln bearbeiten zu müssen.
Der Aufbau der Tabelle ist in dem Foto im Anhang zu sehen.
MfG
TheAlex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 378180
Url: https://administrator.de/contentid/378180
Ausgedruckt am: 17.11.2024 um 07:11 Uhr
10 Kommentare
Neuester Kommentar
insert into postleitzahlen_ALLE select zc_id, zc_loc_id, concat('DE-',plz),ort, lat, lon FROM postleitzahlen_DE;
insert into postleitzahlen_ALLE select zc_id, zc_loc_id, concat('AU-',plz),ort, lat, lon FROM postleitzahlen_AU;
insert into postleitzahlen_ALLE select zc_id, zc_loc_id, concat('CH-',plz),ort, lat, lon FROM postleitzahlen_CH;
Hallo,
also erster Tipp führe die LKZ (nach ISO2-Code) als ExtraSpalte, nicht als DE-08150 Musterhausen.
Ansonsten wen Du je eine Tabelle für DE/AT/CH hast führe die LKZ-Spalte in jeder Tabelle ein, (ein UPDATE ohne Where über alle Zeilen je Tabelle) und danach ein INSERT in eine neue Tabelle Mit einem UNION (https://www.1keydata.com/de/sql/sql-union.php) aus den drei einzelnen Tabellen. Also ein INSERT INTO .. SELECT.
(https://www.w3schools.com/sql/sql_insert_into_select.asp)
Eventuell das UNION als View und dann das INSERT über die View (dürfte übersichtlicher sein, als alles in ein Statement zu legen)
SH
also erster Tipp führe die LKZ (nach ISO2-Code) als ExtraSpalte, nicht als DE-08150 Musterhausen.
Ansonsten wen Du je eine Tabelle für DE/AT/CH hast führe die LKZ-Spalte in jeder Tabelle ein, (ein UPDATE ohne Where über alle Zeilen je Tabelle) und danach ein INSERT in eine neue Tabelle Mit einem UNION (https://www.1keydata.com/de/sql/sql-union.php) aus den drei einzelnen Tabellen. Also ein INSERT INTO .. SELECT.
(https://www.w3schools.com/sql/sql_insert_into_select.asp)
Eventuell das UNION als View und dann das INSERT über die View (dürfte übersichtlicher sein, als alles in ein Statement zu legen)
SH
@SachsenHessi nur fürs Protokoll: Nach Optimierungen hat er ja nicht gefragt. Deswegen habe ich erstmal ganz stupide genau das geantwortet, was er gefragt hat. *g*. Das quasi immer noch ne nummer sauberer geht, ist doch klar.
Tja, eine " Möglichkeit ist (den Index) anzupassen indem du beim INSERT mit einer mit einer neuen Spalte (mit AutoIncrement) arbeitest.
Diese dann zum Index erklarst die alte löschst und die neue Spalte umbennst. Dann hast du eine Spalte mit neuen, fortlaufenden Indizes und Autoincrement. Nicht schön, aber funktioniert ;)
SH
Diese dann zum Index erklarst die alte löschst und die neue Spalte umbennst. Dann hast du eine Spalte mit neuen, fortlaufenden Indizes und Autoincrement. Nicht schön, aber funktioniert ;)
SH
Zitat von @SachsenHessi:
Tja, eine " Möglichkeit ist (den Index) anzupassen indem du beim INSERT mit einer mit einer neuen Spalte (mit AutoIncrement) arbeitest.
Diese dann zum Index erklarst die alte löschst und die neue Spalte umbennst. Dann hast du eine Spalte mit neuen, fortlaufenden Indizes und Autoincrement. Nicht schön, aber funktioniert ;)
SH
Das ist kein Index sondern vermutlich der Primärschlüssel und den sollte man möglichst nicht einfach neu erstellen das wäre in vielen Fällen fatal, "fortlaufend" muss der auch nicht sein.Tja, eine " Möglichkeit ist (den Index) anzupassen indem du beim INSERT mit einer mit einer neuen Spalte (mit AutoIncrement) arbeitest.
Diese dann zum Index erklarst die alte löschst und die neue Spalte umbennst. Dann hast du eine Spalte mit neuen, fortlaufenden Indizes und Autoincrement. Nicht schön, aber funktioniert ;)
SH