# [mysql]doppelten Eintrag verhindern



## bled (10. Oktober 2004)

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


----------



## bn (10. Oktober 2004)

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


----------



## bled (10. Oktober 2004)

Vielen Dank ^^
Wieso bin ich da nur nich selbst drauf gekommen...
nochmal danke, funktioniert jetzt alles ^^


----------



## bled (10. Oktober 2004)

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:


```
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 )
);");
```


----------



## ManicMarble (10. Oktober 2004)

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:

```
...
PRIMARY KEY (id),
UNIQUE (name),
UNIQUE (mail)
```
Oder wolltest Du einen kombinierten Index?


----------



## bled (10. Oktober 2004)

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!


----------



## bn (10. Oktober 2004)

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


----------

