Clés étrangères dans GORM non mises à jour
Feb 09, 2024 am 11:57 AMLorsque j'utilisais GORM récemment, j'ai trouvé un problème : les clés étrangères n'étaient pas mises à jour. Lorsque j'ai mis à jour la valeur du champ de clé étrangère dans la table associée, elle n'a pas été mise à jour de manière synchrone avec l'autre table. Grâce à des enquêtes et des recherches, j'ai découvert que cela était dû au fait que GORM ne met pas automatiquement à jour les champs de clé étrangère par défaut. Ce problème me dérange depuis un moment, j'ai donc décidé de partager la solution avec tout le monde. Dans cet article, je vais vous montrer comment utiliser GORM pour mettre à jour correctement les champs de clé étrangère afin d'éviter ce problème.
Contenu de la question
J'ai deux bureaux, l'un est une entreprise
1 2 3 4 5 6 |
|
L'autre est product_entitlement
1 2 3 4 5 6 7 8 |
|
CompanyID est une clé étrangère. CompanyID contient la valeur de Company.Id
Une fois l'insertion de mise à jour terminée, de nouvelles lignes seront insérées à chaque fois. C'est le code que nous utilisons
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Mais cela échoue toujours et donne une erreur
BD820BD3F94A2A45E18ED8E8094EF395Je souhaite mettre à jour Product_entitlement si l'ID existe, sinon créez-en un nouveau
L'URL est la suivante, http://localhost:8080/company/{{companyId}}/product/{{companyId}} et utilisez la méthode PUT Le corps est
{"type": "auto"}
Solution de contournement
Si cela aide quelqu'un, nous pouvons utiliser la fonction FirstOrCreate
pour vérifier si l'identifiant existe et le mettre à jour, sinon en créer un nouveau.
Pour attribuer une clé étrangère, nous devons attribuer la valeur à la table associée,
entitlementRequest.CompanyID = uid
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

GO Language Pack Import: Quelle est la différence entre le soulignement et sans soulignement?

Comment mettre en œuvre le transfert d'informations à court terme entre les pages du cadre Beego?

Comment écrire des objets et des talons simulés pour les tests en Go?

Comment puis-je utiliser des outils de traçage pour comprendre le flux d'exécution de mes applications GO?

Comment convertir la liste des résultats de la requête MySQL en une tranche de structure personnalisée dans le langage Go?

Comment rédigez-vous des tests unitaires en Go?

Comment écrire des fichiers dans GO Language de manière pratique?

Comment puis-je définir des contraintes de type personnalisé pour les génériques en Go?
