Fonction Python et MySQL, pour créer une clé étrangère

Liste des GroupesRevenir à fcl python 
Sujet : Fonction Python et MySQL, pour créer une clé étrangère
De : nospam_olivier.debeyssac (at) *nospam* gmail.com.invalid (Olivier92410)
Groupes : fr.comp.lang.python
Date : 03. Dec 2021, 12:58:25
Autres entêtes
Organisation : !No_Organization!
Message-ID : <CAOdnZ2m4f_MZTT8nZ2dnUU7983NnZ2d@giganews.com>
Bonjour, Je veux insérer dans plusieurs tables une clé étrangère.
Pour cela, j'ai créé un dictionnaire qui fournira à une fonction les paramètres
nécessaires à la création de ces clés.

Ci-dessous, une partie du dictionnaire utilisé, pour rester simple:
d_fk = {'Bien_Immo': ['fk_Id_Lot', 'Lot', 'Id']}

Puis la fonction,
def create_fk(name1, name2, name3, name4):
    url = "e;mysql+pymysql://{user}:{password}@localhost/{db}"e;
    engine = create_engine(url.format(user='root', password='Fer458it',
db='data_immo'))
    engine.execute(f"e;ALTER TABLE {name1}"e;
                   f"e;ADD COLUMN {name2},"e;
                   f"e;ADD CONSTRAINT {name2}"e;
                   f"e;ADD FOREIGN KEY ({name2}) REFERENCES {name3}({name4})"e;
                   f"e;ON DELETE CASCADE"e;)
return

for key in d_fk.keys():
    if isinstance(d_fk[key][0], list):
        for i in range(len(d_fk[key])):
            [n2, n3, n4] = [d_fk[key][i][0], d_fk[key][i][1], d_fk[key][i][2]]
            create_fk(key, n2, n3, n4)
    else:
        [n2, n3, n4] = [d_fk[key][0], d_fk[key][1], d_fk[key][2]]
        create_fk(key, n2, n3, n4)

Ce code retourne une erreur de syntaxe 1064,

Si vous avez des idées, elles sont bienvenues !
Merci

Date Sujet#  Auteur
3 Dec 21 * Fonction Python et MySQL, pour créer une clé étrangère3Olivier92410
3 Dec 21 +- Re: Fonction Python et MySQL, pour créer une clé étrangère1Alain Ketterlin
6 Dec 21 `- Re: Fonction Python et MySQL, pour créer une clé étrangère1Nicolas

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal