J'essaie de le faire, mais il y a une erreur de syntaxe, qu'est-ce que je fais mal ?
declare myid := insert into oameni values(default,'lol') returning id;
ma table :
create table oameni
(
id serial primary key,
name varchar(10)
);
J'essaie de le faire, mais il y a une erreur de syntaxe, qu'est-ce que je fais mal ?
declare myid := insert into oameni values(default,'lol') returning id;
ma table :
create table oameni
(
id serial primary key,
name varchar(10)
);
Vous devez utiliser la clause INTO dans le RETURNING pour définir la valeur retournée dans votre variable :
DECLARE myid OAMENI.id%TYPE;
INSERT INTO oameni
VALUES
(default,'lol')
RETURNING id INTO myid;
Vous devez également spécifier le type de données de votre variable ; je suis heureux de voir que postgresql supporte %TYPE et %ROWTYPE .
En complément de la réponse principale, il convient de noter que si vous effectuez cette opération en dehors d'une procédure stockée, vous devez envelopper le code dans un bloc "DO", comme suit :
DO $$
DECLARE
myid mytable.id%TYPE;
BEGIN
INSERT INTO mytable (...)
VALUES (...)
RETURNING id INTO myid;
END $$
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.