Insert where select not exist

0

Witam, mam problem z dodaniem do bazy danych tak aby sie nie powtarzaly. Dla przykladu zmienilem tabele ale idea jest ta sama :)

CREATE TABLE `auto` (
  `id` int(11) NOT NULL,
  `nazwa` varchar(64) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `auto`(`nazwa`) VALUES ("auto1") SELECT auto WHERE NOT EXISTS (SELECT * FROM auto WHERE nazwa = "auto1")

nazwa jest dodawana z php ale potrzebuje w jednym zapytaniu sprawdzic czy auto jest juz w bazie i dalej go nie ma to wtedy dodac.

Chodzi o najbardziej efektywne, najszybsze JEDNO zapytanie :)

Dziekuje :)

2

Najefektywniej to dodaj unikalny klucz

0
dzek69 napisał(a):

Najefektywniej to dodaj unikalny klucz

Właśnie potrzebuje zrobić tak aby nie było to na kluczu, próbowałem mniej wiecej w ten sposób, ale nie wiem jak to zastosować
http://stackoverflow.com/a/5307178

0
INSERT INTO auto (id, nazwa)
SELECT * FROM (SELECT 'id', 'jakasnazwa') AS tmp
WHERE NOT EXISTS (
    SELECT nazwa FROM auto WHERE nazwa = 'jakasnazwa'
) LIMIT 1;

1 użytkowników online, w tym zalogowanych: 0, gości: 1