ホームページ  >  記事  >  バックエンド開発  >  Gorm: 子行を追加または更新できません - 自己参照で外部キー制約が失敗します

Gorm: 子行を追加または更新できません - 自己参照で外部キー制約が失敗します

王林
王林転載
2024-02-09 09:18:101059ブラウズ

Gorm:无法添加或更新子行 - 外键约束在自引用时失败

# 開発プロセス中に、PHP エディタ Xinyi で「子行を追加または更新できません - 自己参照で外部キー制約が失敗しました」というエラーが発生することがあります。このエラーは通常、テーブル内の別のフィールドを参照するテーブル内のフィールドなど、データベース内に自己参照がある場合に発生します。この場合、外部キー制約が正しく構成されていないと、子行を追加または更新できないというエラーが発生します。次に、この問題を解決するいくつかの方法を紹介します。

質問内容

以下のような構造になっています。 リーリー

Category 自体には parentcategory を含めることができます。これも category 型から取得されます。したがって、それ自体を参照します。 最初のカテゴリの場合、親カテゴリはありません。

上で述べたように、4 つのカテゴリを含む配列があります。最初のカテゴリには親カテゴリがありません。

これらのカテゴリを次々に保存すると (親カテゴリのない最初のカテゴリから始めて)、次のエラーが発生します (最初の 2 つをここに出力してください):

リーリー

ここで何をしなければならないのか本当にわかりません。誰かこの問題の解決を手伝ってくれませんか?

解決策

あなたのニーズを管理するには、次のコードを使用する必要があります:

リーリー

何が必要なのか理解できれば、それ自体を参照するテーブルが必要です。そのため、

category 構造をこのように定義しました。カテゴリに親がない場合を除き、各カテゴリには独自の parentcategoryid があります。前述のコードを実行しようとすると、次のような結果が得られるはずです: リーリー

もしかしたらあなたの質問から何か理解できなかったかもしれません。もしそうなら教えてください。答えを更新します。ありがとう!

以上がGorm: 子行を追加または更新できません - 自己参照で外部キー制約が失敗しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。