Thomas: [MySQL] Tupel nur einfügen, wenn noch nicht vorhanden

Guten Abend,

wie kann ich MySQL anweisen, dass ein Tupel (3, 3) nur eingefügt wird, wenn er noch nicht vorhanden ist. Ich suche sozusagen dass UNIQUE für Zeilen?
Wie macht man sowas?

Frohe Ostern

Thomas

  1. INSERT IGNORE

  2. Hi Thomas,

    wie kann ich MySQL anweisen, dass ein Tupel (3, 3) nur eingefügt wird, wenn er noch nicht vorhanden ist. Ich suche sozusagen dass UNIQUE für Zeilen?
    Wie macht man sowas?

    das richtige Stichwort hast du bereits genannt: du brauchst einen UNIQUE Index. Dieser kann sehr wohl aus mehreren Spalten bestehen, das nennt sich dann "multiple-column index". Siehe dazu auch CREATE TABLE und CREATE INDEX Syntax. Du hast also beispielsweise eine Tabelle t1 mit den beiden Spalten s1 und s2, deren Werte unique sein sollen:

    ALTER TABLE t1
    ADD UNIQUE INDEX index_name (s1,s2)

    Den Versuch, ein bereits vorhandenes Tupel einzufügen, wird dir MySQL nun mit einer Fehlermeldung quittieren.

    Gruß,
    Andreas.