[mysql]doppelten Eintrag verhindern

bled

Erfahrenes Mitglied
Hallo,
ich bin schon fast am verzweifeln. Ich weiß genau, dass ich irgendwo in meinem Buch gelesen hab, dass man bei der Erzeugung einer Tabelle in den einzelnen Felder festlegen kann, ob die Einträge doppelt vorkommen dürfen (also zum Beispiel bei einer eindeutigen ID). Aber ich find weder so eine funktion, noch den Absatz in meinem Buch, wo ich das gelesen hab :(
Ich glaub das Problem ist ziemlich banal, aber ich komm einfach nich drauf.
Plz help
 
Hallo,

verwende bei deiner Recherche einfach die Stichworte PRIMARY KEY und UNIQUE KEY.
Du wirst sicher schnell fündig werden und dein Problem lösen können ;).

mfg Bloddy
 
Vielen Dank ^^
Wieso bin ich da nur nich selbst drauf gekommen...
nochmal danke, funktioniert jetzt alles ^^
 
So, ich bin wieder da...
Scheinbar will das net so funktionieren.
Also, ich lege durch php eine tabelle in einer db an.
Erst definiere ich 5 felder.
Dann definiere ich das ID Feld als primary key.
Darauf zwei andere felder als unique.
Doch das will einfach nicht. Ich kann die Einträge trotzdem doppelt schreiben :(
Wenn ich eine tabelle mit phpmyadmin anlege - genau so, wie in meinem script - funktioniert es...
Ich versteh das einfach net, woran könnte das liegen?

Falls es hilft hier mal der code:

PHP:
	mysql_query("create table user (
name VARCHAR( 20 ) NOT NULL ,
pwd VARCHAR( 70 ) NOT NULL,
id INT NOT NULL ,
rights INT NOT NULL,
mail VARCHAR( 50 )  NOT NULL,
PRIMARY KEY( id ),
UNIQUE( name, 
mail )
);");
 
Du kreierst so einen kombinierten UNIQUE-Index aus den Feldern name und mail, das heißt, dass es keine 2 Datensätze geben darf bei denen in name UND in mail das gleiche stehen darf.

Wenn Du beide Felder unabhängig voneinander als UNIQUE definieren willst dann so:
Code:
...
PRIMARY KEY (id),
UNIQUE (name),
UNIQUE (mail)
Oder wolltest Du einen kombinierten Index?
 
Dankeschön, jetzt funktioniert's endgültig ^^
War blos komisch, weil bei phpmyadmin stand das so, dass die beide in einem unique drin waren :?
Aber was soll's, jetzt gehts ja *freu*
danke noch mal!
 
DARK_IKARI_SHINJI hat gesagt.:
Dankeschön, jetzt funktioniert's endgültig ^^
War blos komisch, weil bei phpmyadmin stand das so, dass die beide in einem unique drin waren :?
Aber was soll's, jetzt gehts ja *freu*
danke noch mal!

nein das war richtig - der feine Unterschied:
UNIQUE(feld1, feld2) -> zusammen gesetzter Index
UNIQUE(feld1), UNIQUE(feld2) -> jedes Feld wird einzeln als Schlüssel betrachtet

mfg Bloddy
 

Neue Beiträge

Zurück