Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL INSERT falls nicht vorhanden (kein Primärschlüssel verwenden)

1) Können Sie einen UNIQUE hinzufügen Beschränkung auf (myid, theirid) ? Wenn ja, fügen Sie diese Einschränkung hinzu und verwenden Sie:

INSERT INTO mytable (myid, theirid) 
  VALUES (5, 1) ;

und ignorieren Sie die Warnungen zu produzieren (oder ersetzen Sie das obige durch INSERT IGNORE )

2) Wenn Sie eine solche Einschränkung nicht hinzufügen können (z. B. möchten Sie solche Duplikate manchmal zulassen und manchmal nicht), können Sie Folgendes verwenden:

INSERT INTO mytable (myid, theirid) 
  SELECT 5, 1 
  FROM dual 
  WHERE NOT EXISTS
        ( SELECT *
          FROM mytable
          WHERE myid = 5
            AND theirid = 1
        ) ;