問題タブ [mysql-error-1451]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
11136 参照

mysql - ON DELETE CASCADE制約はどのような順序で処理されますか?

これが私が行っていることの例です:

Uncle-Child関係にはONDELETECASCADEがないことに注意してください。つまり、子を削除してもその叔父は削除されません。その逆も同様です。

親と同じ子を持つ叔父がいて、親を削除すると、InnoDBは「それを理解」して、家族全体にカスケードを波及させることができるはずです(つまり、親を削除すると叔父が削除されます)と子供も)。ただし、代わりに、次のようになります。

InnoDBは、子を参照する叔父の前に子をカスケード削除しようとしています。

私は何かが足りないのですか?どういうわけかわからないので失敗するのでしょう?それとも、それを機能させるためのトリックがありますか(またはMySQLのバグですか)?

0 投票する
1 に答える
1500 参照

mysql - Zend Framework - データベース テーブルの再帰的なカスケード削除に関する問題

私の状況は少し異常かもしれませんが、MySQL データベースに外部キーを定義し、Zend_Db_Tableクラスの参照整合性を強制しています。テーブルは InnoDB ストレージ エンジンを使用します。

$_referenceMapレコードを削除する場合、Zend Framework はテーブル モデルの を介して直接の子を適切に識別し、それらを削除します。ただし、直接の子の子が存在する場合、その外部キーの参照整合性に違反しているというエラーがデータベースから返されます: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails. Zend_Db_Table_Abstractは、再帰的な方法で参照整合性を強制していないようです。

他の誰かがこれに遭遇しましたか?それはZend Framework のバグですか? 回避策?修正?


アップデート

Nearly a week later and I have no replies to this question. I am thinking I'll have to extend the Zend_Db_Table_Row_Abstract class myself to accomplish this.

0 投票する
1 に答える
5188 参照

sql - 親行を削除または更新できない - JPA with Hibernate

すべてのテーブルが Java JPA/Hibernate コードによって生成されたデータベースがあります。これと同様の方法で、データベース内のいくつかのテーブルを更新する必要があります。

残念ながら、これはエラーになります

エラー 1451 (23000): 親行を削除または更新できません: 外部キー制約が失敗しました (departmentuserlink, CONSTRAINT FK96AF44EAB09C41C5 FOREIGN KEY (department_id) REFERENCES department (id))

Java エンティティは次のとおりです。

どちらもスーパークラスに ID があります。これまでのところ、部門の主キーの更新で問題が発生しただけで、それらに関する他のすべてがうまく機能しているように見えます。アドバイスをいただければ幸いです。ありがとう。

0 投票する
1 に答える
244 参照

mysql - データベースの外部キーの問題

私はソーシャルネットワーキングサイトを作成していて、友達のテーブルに取り組んでいますが、何が間違っているのかわかりません。

users(userId, name - userId は主キー) と (friend1, friend2, status) という別のテーブルがありますfriendsfriend1および更新および削除時friend2の外部キーはuserId、カスケード テーブル ユーザーに設定され、ID として 134 のエントリがあり、3 に変更したいと考えています。friends テーブルには、値が 143 の行が 2 つあります。134 を 3 に変更すると、更新時にカスケードし、フレンド テーブルの値も変更されるべきではありません。このエラーが発生しています

1451 - 親行を削除または更新できません: 外部キー制約が失敗しました ( modionz1_nightspot/friends, CONSTRAINT friends_ibfk_1FOREIGN KEY ( friend1) REFERENCES users( userId))

ちなみに、両方のテーブルはinnodbです。これらの概念に関するヘルプは大歓迎です。

0 投票する
1 に答える
2914 参照

mysql - GrailsGORMおよびMYSQLカスケード削除の問題

静的hasManygrailsの下のUserクラスで定義された多くの子テーブルを持つテーブルUserがあります。

grailsでUser.get(3).delete()を実行しても問題ありません。そのユーザーとそのすべての子テーブル行を自動的に削除します。しかし、MySQLワークベンチで同じ操作を実行したい場合。MySQLによってエラーがスローされます:

ここでMySQLの問題が何であるかわかりません。

0 投票する
6 に答える
16627 参照

sql - テーブルの行を削除できません(MySQL)

親愛なる皆さん、MySQLに問題がDELETE FROM users where user_id ='1';あります。MySQLCLIで実行できませんでした。だから私はphpMyAdminで試しました:GUIを使用して行を削除します、私はこれを手に入れました:

SQLクエリ:

MySQLによると:ドキュメント

Mysql Webサイトでこのエラーを調べたところ、次のようになりました。エラー:1451 SQLSTATE:23000(ER_ROW_IS_REFERENCED_2)

メッセージ:親行を削除または更新できません:外部キー制約が失敗しました(%s)

ここで何が悪いのかわかりません。誰かが私に注意を向けてくれることを願っています。

多くのthx!

0 投票する
2 に答える
34882 参照

mysql - mysql エラー 1451

コード 1451 の mysql エラーが発生しました。

親行を削除または更新できません: 外部キー制約が失敗しました ( online_store_admin. osa_admin_logs, CONSTRAINT fk_admins_logsFOREIGN KEY ( aid) REFERENCES osa_admins( aid))

ここでSQL文:

/blockquote>

このステートメントを使用すると問題が発生します。

osa_admins where aid='2'; から削除します。

「カスケード削除」を設定したと思います。カスケードを削除する方法を知っている人はいますか? そのため、osa_admin_logs データを手動で削除する必要はありません。ああ、私はinnodbをdbエンジンとして使用しています(私が持っているデフォルトのmysql)。

申し訳ありませんが、回答があったのと同じ質問をします。質問を入手できる場所を教えてください。

ありがとうございました。

0 投票する
2 に答える
14729 参照

sql - エラー 1451: 親行を削除または更新できません: 外部キー制約が失敗しました

したがって、このテーブルは、ID と自己参照型の親 ID を持つカテゴリを表します。カテゴリ cat1 と、親 ID が cat1 のサブカテゴリ cat1_child を挿入しました。

ここで、cat1 の idcategory を 1 から 10 に変更できるようにしたいと考えています。更新 CASCADE で外部キーを設定したため、cat1_child の idparent も 10 に設定されることを期待しています。しかし、私がするとき:

エラーが発生します:

エラー 1451: 親行を削除または更新できません: 外部キー制約が失敗しました ( categories, CONSTRAINT FK_idparentFOREIGN KEY ( idparent) REFERENCES categories( idcategories) ON DELETE CASCADE ON UPDATE CASCADE) SQL ステートメント: UPDATE categoriesSET idcategories=10 WHERE idcategories='1'

代わりに、削除は期待どおりに機能し、cat1 を削除すると、cat1_child も削除されます。

エラーはどこにありますか? あなたより。

0 投票する
1 に答える
148 参照

mysql - エラー コード: 1451 (主キーが 2 つ)

次のステートメントを実行できません。

私が得るので:

テーブルがあります:

このクエリを実行してテーブルの内容を表示すると、次のようになります。

ご覧のとおり、「my_id」と「upgrade_time」の両方がキーであり、削除したい行は子テーブルに存在しません。これは別の時間であるためです。

ここで何が問題なのですか?

ありがとう!