PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL, Tabellenfrage


Marscel
2006-10-10, 13:52:28
Ich hab eine Anwendung, die kann in einer Tabelle alle möglichen Nummern für Entities nachschlagen.

e_id | e_name
_______________
1 | config
2 | language
...

e_id ist der Primärschlüssel, dessen Wert im Datensatz immer um 1 erhöht wird.

Jetzt ist es mir wichtig, dass von e_name auch max. ein Exemplar in der Tabelle existiert, also 1=> config und 3=> config soll z.B. nicht möglich sein.

Ich hatte bisher noch nie mit so einer Situation zu tun: Was für ein Attribut braucht e_name, damit alle Werte darin nur einmal existieren dürfen? Geht das überhaupt?
Das Feld als einfachen "KEY" deklarieren, ist so ein wenig meine Vermutung, bin aber nicht sicher...

darph
2006-10-10, 13:55:57
Wenn e_name unique sein soll, wieso dann noch extra eine ID für den Primary Key einführen? Dann kannst du doch gleich e_name als Primary Key definieren.

Oder: CREATE TABLE `test` (
`e_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`e_name` VARCHAR( 255 ) NOT NULL ,
UNIQUE (
`e_name`
)

Marscel
2006-10-10, 14:07:46
Das mit 'UNIQUE' sieht gut aus. Danke. :)