# 開発プロセス中に、PHP エディタ Xinyi で「子行を追加または更新できません - 自己参照で外部キー制約が失敗しました」というエラーが発生することがあります。このエラーは通常、テーブル内の別のフィールドを参照するテーブル内のフィールドなど、データベース内に自己参照がある場合に発生します。この場合、外部キー制約が正しく構成されていないと、子行を追加または更新できないというエラーが発生します。次に、この問題を解決するいくつかの方法を紹介します。
以下のような構造になっています。 リーリー
Category 自体には parentcategory を含めることができます。これも category 型から取得されます。したがって、それ自体を参照します。 最初のカテゴリの場合、親カテゴリはありません。
上で述べたように、4 つのカテゴリを含む配列があります。最初のカテゴリには親カテゴリがありません。これらのカテゴリを次々に保存すると (親カテゴリのない最初のカテゴリから始めて)、次のエラーが発生します (最初の 2 つをここに出力してください):
リーリー
ここで何をしなければならないのか本当にわかりません。誰かこの問題の解決を手伝ってくれませんか? 解決策あなたのニーズを管理するには、次のコードを使用する必要があります:リーリー
何が必要なのか理解できれば、それ自体を参照するテーブルが必要です。そのため、category 構造をこのように定義しました。カテゴリに親がない場合を除き、各カテゴリには独自の
parentcategoryid があります。前述のコードを実行しようとすると、次のような結果が得られるはずです:
リーリー
以上がGorm: 子行を追加または更新できません - 自己参照で外部キー制約が失敗しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。