Betrachten Sie die folgende Tabelle:Wie verhindere ich, dass MySQL den Primärschlüssel bei Verwendung von ON DUPLICATE KEY UPDATE automatisch inkrementiert, wenn das Duplikat eine andere eindeutige Spalte ist?
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| vendor_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| vendor_name | varchar(100) | NO | UNI | NULL | |
| count | int(10) unsigned | NO | | 1 | |
+-------------+------------------+------+-----+---------+----------------+
Ich habe folgende MySQL-Abfrage:
INSERT INTO `table`
(`vendor_name`)
VALUES
('foobar') ON DUPLICATE KEY UPDATE `count` = `count` + 1
Die Absicht dieser Abfrage ist, einen neuen Herstellernamen in der Tabelle und im Falle Name bereits der Anbieter einfügen existiert, sollte die Spaltenanzahl um 1 erhöht werden. Dies funktioniert jedoch, der Primärschlüssel der aktuellen Spalte wird ebenfalls automatisch inkrementiert. Wie kann ich verhindern, dass MySQL in diesen Fällen den Primärschlüssel automatisch inkrementiert? Gibt es eine Möglichkeit, dies mit einer Abfrage zu tun?
Vielen Dank.
verwenden Sie eine beliebige Sprache (wie PHP)? für die Umsetzung des Prozesses? – srinivas
Ja, ich verwende PHP, um die Daten an anderer Stelle abzurufen und sie mit dieser Abfrage in meine Tabelle einzufügen. – vascaino