j'ai mis en place une fonction qui vérifie si une valeur apparaît dans une ligne spécifique d'une table spécifique:erreur de fonction postgresql: nom de la colonne n'existe pas
CREATE FUNCTION check_if_if_exist(id INTEGER, table_name character(50), table_column character(20)) RETURNS BOOLEAN AS $$
DECLARE res BOOLEAN;
BEGIN
SELECT table_column INTO res
FROM table_name
WHERE table_column = id;
RETURN res;
END;
$$ LANGUAGE plpgsql
j'ai créer et remplir une table de test simple pour essayer cette fonction:
CREATE TABLE tab(f INTEGER);
et j'appelle la fonction comme
SELECT check_if_exist(10, tab, f);
mais je produit dans cette erreur:
ERROR: column "prova" does not exist
LINE 1: SELECT check_if_exist(10, tab, f);
^
********** Error **********
ERROR: column "tab" does not exist
SQL state: 42703
Character: 27
pourquoi?
Si vous essayez de le faire dans le cadre d'une opération de type "insérer si non existant" ou "mettre à jour, insérer si non existant", veuillez vous arrêter maintenant et lire à propos de upsert sur PostgreSQL. Si ce n'est pas ce que vous faites, peut-être éditer et expliquer quel est votre véritable objectif, car il est difficile d'imaginer une fonction comme celle-ci ayant une utilité là où il n'y a pas de meilleure façon de le faire. –