10 Stimmen

MySQL: Eindeutige Einschränkung für mehrere Felder

Ich habe zwei Tabellen --> Variablen (id, name) und Variable_Entries (id, var_id, value).

Ich möchte, dass jede Variable einen eindeutigen Satz von Einträgen hat. Wenn ich den Werteintrag eindeutig mache, kann eine andere Variable nicht denselben Wert haben, was nicht richtig ist.

Gibt es eine Möglichkeit, die Wertespalte für identische var_id's eindeutig zu machen?

11voto

Ross Snyder Punkte 1875

Ja:

alter table Variable_Entries add unique (var_id, value);

Jetzt haben Sie eine eindeutige Einschränkung für var_id und value zusammen. Mit anderen Worten, kein Vorkommen von var_id und value darf mehr als einmal vorkommen.

6voto

Daniel Vassallo Punkte 325264

Ja, Sie können ein Composite erstellen eindeutiger Schlüssel :

ALTER TABLE variable_entries ADD UNIQUE (var_id, value);

0voto

Amy B Punkte 17616

Fügen Sie einen eindeutigen Schlüssel von Variable_Entries für die kombinierten Felder var_id/value hinzu.

Außerdem sollten Sie für Tabellennamen immer Einzahlwörter verwenden (user statt users). Verwenden Sie niemals Großbuchstaben im Tabellennamen, da dies bei verschiedenen Betriebssystemen zu einem Albtraum führen würde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X