insert into on duplicate key update
Hallo zusammen,
ich stehe momentan vor einem riesen Problem und hoffe ihr könnnt mir helfen. Aus einer db2 Datenbank hole ich mir mit einem Tool mehrere Tabellen in MySQL. Das klappt Zeitgesteuert einwandfrei. Nun habe ich die Daten in zwei MySQL Tabellen die täglich überschrieben werden. In MySQL habe ich eine dritte Tabelle in der alle Felder von Tabelle 1 und 2 vorkommen plus ein paar zusätzliche. Wie kann ich nun ein Update machen? Ich möchte also das meine Tabelle 3 auf dem aktuellen Stand bleibt. Hoffe ich kann es verständlich darstellen: Tabelle 1 (Kunden) index T1Feld2 T1Feld3 T1Feld4 T1Feld5 T1Feld6 Tabelle 2 (Umsätze) index (passend zu Tabelle 1 -> Umsätze zu Kunde) T2Feld2 T2Feld3 T2Feld4 T2Feld5 T2Feld6 T2Feld7 T2Feld8 Tabelle3 kundenid (unabhängig von Tabelle 1 und 2) T1Feld2 T1Feld3 T1Feld4 T1Feld5 T1Feld6 T2Feld2 T2Feld3 T2Feld4 T2Feld5 T2Feld6 T2Feld7 T2Feld8 T3Feld2 T3Feld3 T3Feld4 T3Feld5 Erschwerend kommt hinzu, dass in meiner Tabelle 3 Kunden drin sind, die noch keine Kundenummer haben, sozusagen potenzielle Kunden. Aber es sollen ja nur die Kunden aktualisiert werden, die eine Kundennummer haben. Tabelle hat auch eigene Felder, diese sollten nicht verloren gehen. In Tabelle 1 habe ich einen Index, dieser kommt in Tabelle 2 auch vor, in Tabelle 2 habe ich die Kundennummer der Kunden, diese habe ich auch wieder in Tabelle 3. Wie kann ich die Felder in Tabelle 3 nun aktualisieren und wenn in Tabelle 1 / 2 ein neuer Kunde ist, diesen in Tabelle 3 hinzufügen? Habe folgenden SQL Befehl gefunden, habe aber keine Primärschlüssel der übereinstimmt. INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; Gib es vielleicht Tools? Hoffe auf eure Hilfe. Gruß |
AW: insert into on duplicate key update
Hi Loki
dein Problem würde ich mit einem Redesign der Tabelle3 angehen: Tabelle3 (Haupttabelle, alle Kunden sind sicher da drin) kundenid (PKEY) indexTabelle1 (kann NULL sein) indexTabelle2 (kann NULL sein) T3Feld2 T3Feld3 T3Feld4 T3Feld5 Deine Kunden werden in Tabelle3 eröffnet und sobald Daten in Tabelle1 oder 2 hinzugefügt werden (bzw. aus potentiellen Kunden richtige Kunden werden), kannst du einfach den Index des Records zu Tabelle3 hinzufügen. So kannst du jede Tabelle einzeln aktualisieren (vereinfacht INSERT bzw UPDATE) und per SELECT * FROM Tabelle3 LEFT JOIN Tabelle1 ON Tabelle3.indexTabelle1 = Tabelle1.index (usw.) alle Daten auslesen. Hoffe ich habe alles richtig verstanden.... Lg mgr |
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:48:39 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.