wojtekw
15.10.2007, 11:22:29
Jak zrobić by w tabeli mającej 3 kolumny: id, kol2, kol3, nie wstawiać za pomocą inserta kombinacji kol2, kol3 która juz istnieje ?
Czy da się to zrobić w jednym zapytaniu czy trzeba sprawdzać selectem i ewentualnie później dodawać?
zakręcony
15.10.2007, 12:17:57
[php]<?
// załóż uniqe na 2 kolumny
ALTER TABLE `tabela` ADD UNIQUE ( `kol2` ,`kol3` )
?>
edit:
a dalej sprawdzaj kod błedu, jak wyskoczy odpowiedni to piszesz: ta kombinacja juz istnieje...
Tibod
15.10.2007, 12:18:18
Musisz dodać indeks
UNIQUE dla obu kolumn a następnie wszystko nowe dodawać jako INSERT IGNORE...
tsharek
15.10.2007, 12:23:22
można to prosto zrobić za pomocą tzw. rulesów. np:
CREATE RULE jakas_regolka AS ON UPDATE TO jakas_tabelka WHERE (EXISTS (SELECT jakas_tabelka.id FROM jakas_tabelka WHERE ((jakas_tabelka.kol2= new.kol2) AND (jakas_tabelka.kol3 = new.kol3)))) DO INSTEAD NOTHING;
wojtekw
15.10.2007, 12:26:17
Ok, wielkie dzięki pomogło