php エディター Apple は、GORM フレームワークを使用するときに、1 対多の関係にあるデータを更新できないという一般的な問題に遭遇する可能性があります。 1 対多のリレーションシップでは、通常、マスター テーブルとスレーブ テーブルが存在しますが、更新操作を実行するときに、GORM がスレーブ テーブルからのデータ更新を正しく処理できない場合があります。この問題により、データの不整合や更新の失敗が発生する可能性があります。次の記事では、開発者が GORM フレームワークをより効果的に使用できるように、この問題の解決策を詳しく説明します。
userとdocumentという2つのテーブルがあります。これらは、各ドキュメントが 1 対多の関係を使用してユーザーに属している必要があるという方法で関連付けられています。ドキュメントを更新しようとすると、次のエラーが表示されます
リーリーこれは私の構造定義と更新関数です
error: insert or update on table "documents" violates foreign key constraint "fk_users_documents" (sqlstate 23503)
Db.Save(&document)
を呼び出していますが、document
にはName
フィールドのみが設定されています。 。これは、UserID
が 0 に設定されていることを意味します。 ID 0 のユーザーは User
テーブルに存在しないと思われるため、これは外部キー制約に違反します。
ドキュメントを更新するときは、UserID
フィールドを常に既存のユーザーに設定する必要があります。そうしないと、クエリは失敗します。
とにかく、投稿したコードは非常にわかりにくいため、データベースと golang の基本を学ぶことをお勧めします。
以上がGORM は 1 対多の関係でデータを更新できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。