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

Liste des GroupesRevenir à fcl python 
Sujet : Re: Fonction Python et MySQL, pour créer une clé étrangère
De : nicolasp (at) *nospam* aaton.com (Nicolas)
Groupes : fr.comp.lang.python
Date : 06. Dec 2021, 11:33:38
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <61add8f3$0$20246$426a74cc@news.free.fr>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2
Bonjour,
Le 03/12/2021 à 11:58, Olivier92410 a écrit :
Bonjour, Je veux insérer dans plusieurs tables une clé étrangère.
Etrangère à quoi ? ;)
Blague à part, c'est un peu léger comme description. Il faudrait au moins préciser de quelle type de base de données il s'agit, s'il s'agit bien d'une base de données.

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,
Une erreur Python ou une erreur SQL ?
 Si vous avez des idées, elles sont bienvenues !
Merci
 
Il faudrait fournir un code minimaliste complet et fonctionnel.
Avec les import qui vont bien.
Attention à l'indentation. Ici, on a un "return" qui est hors fonction.
Il y a des "e;" un peu partout dans le code. A quoi correspondent-ils ?
Globalement, il faut présenter un code utilisable directement par une personne qui voudrait/pourrait aider.
Bonne journée,
Nicolas

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