phpbar.de logo

Mailinglisten-Archive

Duplicate in MySQL-Datenbank

Duplicate in MySQL-Datenbank

Sebastian Mendel lists at sebastianmendel.de
Die Mar 16 18:12:01 CET 2004


SELFComput at aol.com wrote:

> [...9
> Also habe ich die Registerkarte "Indexe" geöffnet, dort das Feld BelegNr 
> von "verfügbare
> Felder" auf "verwendete Felder" geschoben und versucht, bei den rechts 
> davon angezeigten
> Indextypen die Option "Unique" zu aktivieren. Offensichtlich läßt das 
> aber meine Software nicht zu.

das geht nicht weil bei Index-Name noch 'PRIMARY' stand! (der PRIMARY 
ist ein reservierter Name für den Primary Key, und der ist sowieso UNIQUE!)

> Ich kann überhaupt keinen Indextype aktivieren. Statt dessen 
> steht bei "Indexname" hartnäckig "PRIMARY".
> Jetzt habe ich einfach einen neuen Indexnamen hinzugefügt, den ich 
> "BelegNr" genannt
> habe.
> Damit konnte ich wenigstens erstmal dort den Indextype auf "Unique" 
> stellen - damit habe
> ich für BelegNr wahrscheinlich zwei Indextypen.

warum glaubst du das?

> Allerdings ziegt sich, daß mir das nicht allzuviel nützt. Wenn ich 
> nämlich die Tabelle über
> ODBC in mein Access einbinde, so bekomme ich während dieses 
> Einbindevorganges die
> dabei normal übliche Anweisung: "Um die Datenintegrität sicherzustellen 
> und Datensätze in
> dieser Tabelle zu aktualisieren, muß ein Feld oder müssen mehrere Felder 
> zur eindeutigen
> Identifizierung jedes Datensatzes ausgewählt werden. Bis zu 10 Felder 
> können ausgewählt
> werden."

ja einen PRIMARY sollte man _immer_ haben!


> Wenn ich mich dann für BelegNr entscheide wird dieses Feld als 
> Primary-Key-Feld in
> meiner Tabelle genommen. Öffne ich dann die Tabelle in der normalen 
> Tabellenansicht,
> gelingt es mir trotzdem, an die Tabelle noch Datensätze mit gleicher 
> Belegnummer
> anzufügen. Dabei werden witzigerweise die Daten aus dem schon 
> bestehendem Datensatz
> mit gleicher BelegNr einfach übernommen - der Datensatz füllt sich also 
> selbst. Im Endeffekt
> sind dann aber zwei völlig identische Datensätze da, was ich unbedingt 
> vermeiden will.

ich glaube nicht das du dann zwei Datensätze hast, weil das nicht geht! 
es wird wohl eher an dem verkrüppelten Access (sorry) liegen was den 
User immer etwas Dumm dastehen lässt weil es einfach zu viele Aufgaben 
abnimmt und der Benutzer eigentlich nicht versteht was passiert!


> Sebastian - Du als Profi - weißt doch bestimmt was da schief läuft.

ja weiß ich, dir fehlt leider noch einiges an Verständnis im Umgang mit 
Tabellen! :-/

Wenn das Feld `BelegNr` auf Unique steht _kann_ niemand einen zweiten 
Datensatz einfügen mit dem selben Inhalt!! auch ODBC nicht! weil das das 
DBMS (MySQL) nicht zu lassen würde.

einen PRIMARY-Key solltest du auch auf jeden fall haben! wenn du noch 
keinen hast dann setz den gleich auf `BelegNr`, der PRIMARY-Key ist auch 
UNIQUE

PRIMARY und UNIQUE sind zwei spezielle Index-Typen

UNIQUE ist ein Index der außerdem einzigartig ist
PRIMARY ist ein UNQUE Index der als ID für den gesamten Datensatz 
verwendet wird.

wenn kein PRIMARY existiert wird automatisch der erste UNIQUE als 
PRIMARY verwendet, wenn keins von beiden existiert ist das ganz schlecht!

p.s. versuch doch eventuell mal den MySQL Administrator
http://www.mysql.com/products/administrator/index.html

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive