ich den folgenden Befehl verwendet, Duplikate in einer Tabelle zu vermeiden:einfügen, wenn nicht scheitern nicht existiert, wenn die Tabelle leer
INSERT INTO mytable (num,name)
SELECT 2,'example' FROM mytable WHERE NOT EXISTS
(SELECT * FROM mytable WHERE num=2 AND name='example') LIMIT 1;
Es funktioniert aber nicht, wenn mytable
leer ist.
Meine Tabelle enthält auch eine AUTO_INCREMENT
ID.
CREATE TABLE mytable (
id int(11) NOT NULL auto_increment,
num int(11) NOT NULL,
name varchar(100) NOT NULL,
PRIMARY KEY (id)
);
Empfiehlt sich eine andere Methode oder ein Workaround?
Sind das ein einmalige, oder hat Ihre Tabelle eine _requirement_, dass die Kombination von 'num, name' immer eindeutig sein? Wenn dies der Fall ist, müssen Sie für dieses Spaltenpaar einen "UNIQUE" -Index erstellen. –
Versuchen Sie 'SELECT 2, 'Beispiel' VON Dual WHERE ...' stattdessen. – JimmyB
was meinst du funktioniert nicht? –