PL/pgSQL SÉLECTIONNER dans un tableau
Voici ma déclaration de fonction et d'une partie du corps:
CREATE OR REPLACE FUNCTION access_update()
RETURNS void AS $$
DECLARE team_ids bigint[];
BEGIN
SELECT INTO team_ids "team_id" FROM "tmp_team_list";
UPDATE "team_prsnl"
SET "updt_dt_tm" = NOW(), "last_access_dt_tm" = NOW()
WHERE "team_id" IN team_ids;
END; $$ LANGUAGE plpgsql;
Je veux team_ids
être un tableau d'entiers que je peux ensuite utiliser dans le UPDATE
déclaration. Cette fonction me donner des erreurs de ce type:
psql:functions.sql:62: ERROR: syntax error at or near "team_ids"
LINE 13: AND "team_id" IN team_ids;
Je pense que vous avez obtenu la commande de mal dans votre sélection. Ne pourrait-il pas être:
SELECT team_id INTO team_ids FROM tmp_team_list;
OriginalL'auteur nnyby | 2012-07-31
Vous devez vous connecter pour publier un commentaire.
Plus rapide et plus simple avec un
DE
clauseUPDATE
déclaration:Cela de côté, alors que le fonctionnement avec un tableau, le
WHERE
clause devrait êtreLa
IN
construire des ouvrages avec les jeux, pas avec des tableaux.OriginalL'auteur Erwin Brandstetter
Pour créer un tableau à partir d'un
SELECT
:La
IN
opérateur est documenté que la prise d'une sous-requête de la partie droite de l'opérande. Par exemple:Peut-être que vous pouvez éviter le tableau tout à fait, ou essayer fournissant l'éventail ou
select from team_ids
.OriginalL'auteur dsh