Feld automatisch mit Inhalt aus zwei anderen Tabellen Feldern
Weberkrebs
- datenbank
0 Vinzenz Mai0 Tom
ich möchte in einer MySQL Datenbank in einer Kundentabelle ein neues Feld einrichten, welches dann mit folgenden Daten automatisch immer gefüllt wird.
Neues Feld in der Tabelle Kunden: matchcode
Benötigte Daten
1. Tabelle Adressbuch: Postleitzahl (z.B. 99999)
2. Tabelle Adressbuch: Strasse (z.B. Willhelmweg 5)
Dabei soll der matchode so gefüllt werden:
plz + ersten 5 GROSS-Buchstaben der Strasse
aus Beispiel also: 99999WILLH
Kann mir jemand bitte da helfen, wie das in der Datenbank usw. automatisch gemacht werden kann
Vielen Dank im Voraus
Hallo
Neues Feld in der Tabelle Kunden: matchcode
Benötigte Daten
- Tabelle Adressbuch: Postleitzahl (z.B. 99999)
- Tabelle Adressbuch: Strasse (z.B. Willhelmweg 5)
Dabei soll der matchode so gefüllt werden:
plz + ersten 5 GROSS-Buchstaben der Strasse
aus Beispiel also: 99999WILLH
mit den Zeichenkettenfunktionen CONCAT() und SUBSTR().
Kann mir jemand bitte da helfen, wie das in der Datenbank usw. automatisch gemacht werden kann
Wenn Du diese Daten redundant halten willst, wären Trigger eine Möglichkeit, diese Spalte immer aktuell zu halten.
Freundliche Grüße
Vinzenz
Hello,
wenn ich das richtig sehe, benötigst Du keine extra Spalte für diesen "Matchcode", sondern kannst Dir direkt einen Kombinations-Index bauen, in den nur die angegebene Anzahl Zeichen eingeht:
http://dev.mysql.com/doc/refman/5.1/de/create-index.html
MySQL unterstützt zwar keine berechneten Indices (soweit ich das weiß), aber doch zusammengestellte mit Teilfeldlängen.
Ein harzliches Glückauf
Tom vom Berg
Hello,
MySQL unterstützt zwar keine berechneten Indices (soweit ich das weiß), aber doch zusammengestellte mit Teilfeldlängen.
Andere DBMS sollten das auch können!
Ein harzliches Glückauf
Tom vom Berg
echo $begrüßung;
wenn ich das richtig sehe, benötigst Du keine extra Spalte für diesen "Matchcode", sondern kannst Dir direkt einen Kombinations-Index bauen, in den nur die angegebene Anzahl Zeichen eingeht:
Ein Index ist nicht abfragbar. Er ist nur für das Finden von Datensätzen wichtig. Der Matchcode, scheint mir jedoch, soll eine andere Aufgabe erfüllen, zumal er auch in einer anderen Tabelle auftauchen soll als die ihm zugrunde liegenden Daten. Ein tabellenübergreifender Index ist meines Wissens unter MySQL nicht möglich.
Bei der Abfrage einen Join einzurichten und dann den Matchcode zu berechnen ist eine Methode, die keinen zusätzlichen Speicher und Pflegeaufwand benötigt. Allerdings kann es andere Gründe haben, auf Joins verzichten zu wollen (Performance beispielsweise). Dann wäre Vinzenz Trigger-Vorschlag auch mein Favorit.
MySQL unterstützt zwar keine berechneten Indices (soweit ich das weiß), aber doch zusammengestellte mit Teilfeldlängen.
Unter dBase wäre das möglich gewesen, da konnte man auch Funktionen in die Indexbildung einbeziehen.
echo "$verabschiedung $name";
Hello,
MySQL unterstützt zwar keine berechneten Indices (soweit ich das weiß), aber doch zusammengestellte mit Teilfeldlängen.
Unter dBase wäre das möglich gewesen, da konnte man auch Funktionen in die Indexbildung einbeziehen.
Genau. Das fand ich gar nicht so blöd!
Ein harzliches Glückauf
Tom vom Berg