Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mysql UNIQUE-Problem

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

Das mit dem löschen der Indizes hat sich erledigt.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.