Comment récuperer la valeur de retour d'un numéro de séquence généré par la clause sur POstegresql
Bonjour
Voici une question donc je ne retrouve pas la réponse .
Le fait appel à une base POSTGRESQL via les commandes psycopg2.
Je me connecte à la base , fait des insertion simple ... etc
mais voila je comment lorsque j' insére une seule ligne dans la table, de récuperer le numéro de séquence généré par la clause DEFAULT retouner par cette INSERT
soit cette insert
INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
RETURNING did;
soit cette version ou l'index est normalement autogénérer par la séquece affecté à la table
INSERT INTO distributors ( dname) VALUES ( 'XYZ Widgets')
RETURNING did;
or je ne retrouve pas d'exemple
exemple de table
Code:
1 2 3 4 5 6 7 8
| CREATE TABLE public.distributors (
did bigserial NOT NULL,
dname VARCHAR(150) NOT NULL,
CONSTRAINT did_pk PRIMARY KEY (did)
)
WITH (
OIDS=FALSE
) ; |
La table génére donc la séquence pae defaut
Code:
1 2 3 4 5 6
| -- DROP SEQUENCE public.distributors_did_seq;
CREATE SEQUENCE public.distributors_did_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807; |
l'insertion ce réalise donc
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import psycopg2 # Accés PostgreSQL
import psycopg2.extras # Goodies PostgreSQL
from config import Config
if __name__ == '__main__':
conn = psycopg2.connect(host="localhost",database="suppliers", user="postgres", password="postgres")
cur = conn.cursor()
sql ='''INSERT INTO public.distributors
(dname)
VALUES ( %s )
RETURNING did;
'''
value1 ="CAS12"
cur.execute(sql, (value1))
conn.commit()
conn.close() |
Comment puis-je recuperer la valeur de did génére par RETURNING en POSTGRESSQL