[PostgreSQL] NULL jako wartosc

0

potrzebuje uzyc polecenia UPDATE i wtedy napotykam na problem z polami ktore moga nie istniec, np.

tabela { 
a int4;
b int4;
ilosc in4;
}

a przykladowe wywolanie UPDATE:
UPDATE tabela SET ilosc = ilosc+1 WHERE a = 1 AND b=1;
Porblem pojawia sie gdy wiersz gdzie a=1 i b=1 nie istnieje. Wczesniejsze uzycie INSERT odpada. Zalezalo by mi tu na utworzeniu nowego wiersza gdzie a=1 i b=1 i podbiciu ilosc o 1 (czyli w pierwszym uzyciu potraktowanie NULL spod pola ilosc jako 0). Z gory dzieki

0

To oczywiste nie możesz uaktualniać wiersz ktorego nie ma...

Nie znam PSQL, w MsSQL zrobiłym funkcje użytkownika której przekazałbym parametry A i B, a zwracałbym dodana ilość, możen ie pomogę ale napiszę, zawsze moze cię to do czegoś naprowadzić.
w przybliżeniu wygladałoby to tak

CREATE FUNCTION dbo.il(@A INT, @B INT)  
RETURNS int AS  
BEGIN
DECLARE @WYNIK INT

IF NOT EXISTS(SELECT * FROM TABELA WHERE A=@A AND B=@B)
	INSERT INTO TABELA (ILOSC,A,B) VALUES (0, @A, @B)

UPDATE tabela SET @WYNIK = ilosc = ilosc+1 WHERE a=@B AND b=@B
RETURN @wynik + 1
END

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