最近 GORM を使用していたときに、外部キーが更新されていないという問題が見つかりました。関連テーブルの外部キー フィールドの値を更新したときに、他のテーブルに対して同期的に更新されませんでした。調査と研究の結果、これは GORM がデフォルトで外部キー フィールドを自動的に更新しないためであることがわかりました。この問題はしばらく私を悩ませていたので、解決策をみんなと共有することにしました。この記事では、この問題を回避するために、GORM を使用して外部キー フィールドを正しく更新する方法を説明します。
机が2つあり、1つは会社です
リーリーもう 1 つは product_entitlement です
リーリーCompanyID は外部キーです。 CompanyID には Company.Id
の値が含まれます更新挿入が完了すると、毎回新しい行が挿入されます。これは私たちが使用しているコードです
リーリーしかし、常に失敗し、エラーが発生します
BD820BD3F94A2A45E18ED8E8094EF395ID が存在する場合は Product_entitlement を更新し、存在しない場合は新しい ID を作成したいです
URLは以下の通りです。 http://localhost:8080/company/{{companyId}}/product/{{companyId}} と PUT メソッドを使用します 本体は
です{"Type": "Automatic"}
誰かの役に立つ場合は、FirstOrCreate
関数を使用して ID が存在するかどうかを確認し、更新することができます。存在しない場合は新しいものを作成します。
外部キーを割り当てるには、値を関連テーブルに割り当てる必要があります。
entitlementRequest.CompanyID = uid
以上がGORM の外部キーが更新されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。