Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Postgresql] unikatowqa kombinacja kolumn
wojtekw
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
zakręcony
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 10
Dołączył: 26.09.2007

Ostrzeżenie: (0%)
-----


  1. [php]<?
  2. // załóż uniqe na 2 kolumny
  3. ALTER TABLE `tabela` ADD UNIQUE ( `kol2` ,`kol3` )
  4. ?>


edit:
a dalej sprawdzaj kod błedu, jak wyskoczy odpowiedni to piszesz: ta kombinacja juz istnieje...

Ten post edytował zakręcony 15.10.2007, 12:18:20
Go to the top of the page
+Quote Post
Tibod
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

Ostrzeżenie: (0%)
-----


Musisz dodać indeks UNIQUE dla obu kolumn a następnie wszystko nowe dodawać jako INSERT IGNORE...
Go to the top of the page
+Quote Post
tsharek
post
Post #4





Grupa: Zarejestrowani
Postów: 300
Pomógł: 1
Dołączył: 22.09.2003
Skąd: Czeladź

Ostrzeżenie: (0%)
-----


można to prosto zrobić za pomocą tzw. rulesów. np:
  1. 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;


Ten post edytował tsharek 15.10.2007, 12:24:13
Go to the top of the page
+Quote Post
wojtekw
post
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


Ok, wielkie dzięki pomogło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:30