Mam pytanie,
Chciałem skrócić kod i wpadłem na pomysł że to co mogę w paru liniach zrobić w PHP mogę w jednej linii zrobić w MYSQL, ale.... coś nie wychodzi.
Mam nast. zapytanie SQL:
Kod
IF NOT EXISTS
SELECT `uid`,`link` FROM `link_logs` WHERE `uid` = '67' AND `link` = '0'
THEN
INSERT INTO `link_logs` (`uid`, `link`) VALUES ('67', '0')
END IF;
SELECT `uid`,`link` FROM `link_logs` WHERE `uid` = '67' AND `link` = '0'
THEN
INSERT INTO `link_logs` (`uid`, `link`) VALUES ('67', '0')
END IF;
wypróbowałem też zapytanie bez IF:
Kod
INSERT INTO `sm_link_logs` (`uid`, `link`) VALUES ('67', '0')
WHERE
NOT EXISTS (
SELECT `uid`,`link` FROM `sm_link_logs` WHERE `uid` = '67' AND `link` = '0'
);
WHERE
NOT EXISTS (
SELECT `uid`,`link` FROM `sm_link_logs` WHERE `uid` = '67' AND `link` = '0'
);
Wg. tego co się dowiedziałem to w ten sposób powinno wyglądać zapytanie.
Jednak nie pojawia się żaden błąd MySQL (co sugeruje mi że nie ma błędu parsera w zapytaniu) ale jest błąd logiczny bo mimo że tabela jest pusta, Nie pojawia się nowa liniia.
z założenia jest że jeżeli nie istnieje uid i link o podanych wartościach to ma stworzyć nową wartość w tabeli o takich wartościach.
Wiedzę na ten temat znalazłem tu:
http://forums.mysql.com/read.php?98,33383,33784#msg-33784 oraz
http://lists.mysql.com/replication/220
Prosiłbym o pomoc przy tym zapytaniu.