Wie kann man prüfen, ob ein Wert eine ganze Zahl mit plpgsql ist?
-
22-09-2019 - |
Frage
Ich bin mit dieser Funktion in einem Trigger:
CREATE OR REPLACE FUNCTION xx() RETURNS trigger AS $xx$
BEGIN
INSERT INTO my_log (x, y, z) VALUES (NEW.x, NEW.y, current_setting('myvar.user'));
RETURN NULL;
END;
$xx$ LANGUAGE plpgsql;
Jetzt würde ich prüfen möchte, ob ‚myvar.user‘ eine gültige ganze Zahl ist, und wenn nicht, das andere tun INSERT-Anweisung.
Wie würde ich das tun?
Lösung
SELECT current_setting('myvar.user') ~ '^[0-9]+$'
Andere Tipps
Genommen von archives.postgresql.org :
CREATE FUNCTION isnumeric(text) RETURNS boolean AS '
SELECT $1 ~ ''^[0-9]+$''
' LANGUAGE 'sql';
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow