Cześć,
Do aplikacji nad którą pracuje używam bazy Sqlite, chciałem jednak przenieść się na coś mocniejszego i wybór padł na postgresql.
Mam tylko problem z jednym zapytaniem.
Załóżmy, że mam taką tabelę:
create table test
(
id integer NOT NULL PRIMARY KEY,
daty varchar(30),
opis1 varchar(250),
opis2 varchar(250),
UNIQUE (daty)
);
INSERT INTO test(id,daty,opis1,opis2) VALUES(0,'2015-11-01','1111','11');
INSERT INTO test(id,daty,opis1,opis2) VALUES(1,'2015-11-02','2222','22');
INSERT INTO test(id,daty,opis1,opis2) VALUES(2,'2015-11-03','3333','33');
INSERT INTO test(id,daty,opis1,opis2) VALUES(3,'2015-11-04','4444','44');
INSERT INTO test(id,daty,opis1,opis2) VALUES(4,'2015-11-05','5555','55');
W Sqlite chcąc podmienić wartości w np. 2 wierszach wykonywałem takie zapytanie:
REPLACE INTO test (id,daty,opis1,opis2) VALUES(0,'2015-11-02','zmiana 1','zmiana 2'),(3,'2015-11-04','zmiana','zmiana');
Kolumna daty ustawiona jest jako UNIQUE więc zapytanie podmienia wartości w wierszach z określoną datą (lub jeśli wiersze nie istnieją to je dodaje).
Czy da się coś podobnego zrobić na bazie postgresql?
Mógłbym zrobić pętle i zapytaniem UPDATE po kolei aktualizować każdy wiersz osobno ale na pewno wydajniejsze było by jedno zapytanie w przypadku aktualizacji kilkudziesięciu wierszy.