Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Freunde,

folgendes Problem:

Bsp:


CREATE TABLE automarke

(id int(10) NOT NULL AUTO_INCREMENT, 

MARKE varchar(20) DEFAULT NULL, 

HERSTELLER varchar(20) DEFAULT NULL, 

HERSTELLUNGSLAND varchar(20) DEFAULT NULL,  

PRIMARY KEY(id, MARKE, HERSTELLER, HERSTELLUNGSLAND)

); 

Jede Zeile der Tabelle (zusammengesetzt aus den Spalten MARKE, HERSTELLER, HERSTELLUNGSLAND) darf in ihrer Kombination nur 1 mal vorkommen.

Das heißt, der Spalteninhalt darf sich wiederholen, aber von den 3 Spalteninhalten dürfen maximal 2 Spalteninhalte (pro Zeile) in der Tabelle identisch sein.

Habe es mit Primary Key versucht, ohne Erfolg. UNIQUE selbst konnte ich bisher jeweils nur für eine Spalte anwenden, nicht für mehrere.

Danke

Gruß

Backspace

Geschrieben

Hallo Dim,

habe die Tabelle gelöscht und wieder neu erstellt (nur die id als Pri-Key).

Habe dann im Anschluß darauf Deinen Code nachträglich in die MySQL seperat eingegeben.

Hat bei mir leider nichts bewirkt, obwohl MySQL die Eingabe des Codes klaglos angenommen hat.

Gruß

Backspace

Geschrieben

Hast Du denn alle Spalten befüllt? Falls auch in nur einer der 4 Spalten ein NULL Wert steht, ist er immer ungleich der anderen Zeilen.

Die ID könnte man eigentlich auch wieder aus dem Index entfernen, denn hier sorgt eh schon der PK Constraint, dass diese eindeutig ist.

Dim

Geschrieben

Hallo Dim,

ja alle Spalten werden befüllt.

Leere ich die Tabelle, so wird jeweils wieder alles Abhängig von der Spalte Marke befüllt, die Spalte ist jedoch nicht als UNIQUE definiert.

So wird z.B. die Marke Audi oder Opel,..... jeweils nur 1 mal in der gesamten Tabelle aufgeführt, was natürlich nicht das Ziel ist.

Gruß

Backspace

Geschrieben

Hallo,

Soll-Zustand:


id          Marke          Hersteller          Herstellungsland


1           Audi             Audi                Deutschland

2           Audi             Audi                USA

3           Audi             VW                  Deutschland

.....

10          BMW              BMW                 Deutschland

IST-Zustand: pro Marke wird jedoch nur 1 Eintrag in die Tabelle erlaubt !?

id          Marke            Hersteller          Herstellungsland


1           Audi              Audi                 Deutschland

2           BMW               BMW                  Deutschland

3           Mercedes

...

...

hab den Unique-Code so geschrieben:

create unique index autos_idx on tabelle(Marke, Hersteller, Herstellungsland);

Wie kann man die erstellten Indizes (idx) eigentlich finden und löschen ?

Danke

Backspace

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...