phpbar.de logo

Mailinglisten-Archive

Re: REPLACE zestört meinen INDEX
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: REPLACE zestört meinen INDEX



Hi,

Alexander Dobernig:
> Und ich bekomme jetzt externe Daten im Format
> 
> Feld A
> Feld B
> [Feld C]
> [Feld D]
> 
> So habe ich das problem, daß ich ich in der tabelle1 einen neuen record mit
> der richtigen ID anlegen muß und falls nötig auch in der Tabelle Main falls
> dieser Wert nicht existiert wobei aber im pseudoCOMPOUND PRIMARY ABCD  die
> Felder C&D NULL sein können weshalb es kein wirklicher PRIMARY sein kann

Da bleibt dir wirklich nichts anderes übrig, als den zweistufigen Weg zu
gehen (d.h. erst gucken ob der Datensatz bereits existiert), was du am
schnellsten mit einem UPDATE machen kannst, das liefert die Zahl der
geänderten Datensätze zurück; oder halt mit einem SELECT, wenn du die ID
sowieso in jedem Fall brauchst, weil der UPDATE die nämlich nicht
zurückliefert.

Vier solche Felder würde ich allerdings sowieso nie zu einem Primärindex
machen, weil der Datenwust, den du da mitschleppen würdest, ungeheuerlich
wäre. An sich ginge das mit MySQL 3.23 nämlich -- das kann NULLs im Index.

Ansonsten ist die Beschreibung von REPLACE INTO relativ eindeutig, d.h.
der Datensatz mit kollidierendem Index wird gelöscht und dann wird, genau
wie beim Insert, ein neuer angelegt. Und der kriegt nunmal eine neue ID...

Die Jungs von MySQL haben schon auf der TODO-Liste, das auch anders zu
ermöglichen, aber es ist alles andere als einfach, sobald die Fälle
komplizierter werden => das erschlägt man dann gleich alles mit Stored
Procedures oder so.

-- 
Matthias Urlichs  |  noris network GmbH   |   smurf_(at)_noris.de  |  ICQ: 20193661
The quote was selected randomly. Really.    |      http://www.noris.de/~smurf/
-- 
EE's do it without shorts.

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive