logo
01.12.2019 15:16
1
Mam update query kde pouzivam CASE a chcem zabranit tomu aby query zbehla ak sa nezhoduje primarny kluc ale nedari sa mi to. Co som pobehal web tak sa pouziva signal s 02 prefixom ale mariadb stale hadze syntax error, ak to zapuzdrim do toho kejsu.

Kód:
UPDATE skusa SET hodnota = CASE
	WHEN id = 1 THEN 5 
	ELSE
	SIGNAL SQLSTATE VALUE '02000'
	END
WHERE id IN (1);

Co se právě děje na Webtrhu?

01.12.2019 16:46
2
V uvedeném příkladě používáte CASE jako funkci, za ELSE tedy musí být hodnota. Příkaz SIGNAL je vhodný pro procedury/funkce jako raise error.