問題タブ [mysql-error-1452]

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 投票する
2 に答える
2510 参照

mysql - MySQL で ERROR 1701、ERROR 1452、および ERROR 1305 エラーが発生する - 専門知識が必要

これは、第 3 正規形でデータベースを作成する最初の真のクラックです。DDL スクリプトを正常に作成できました (先に進んでスクリプトを作成する前に、論理モデルを 3NF に対して検証しました) が、修正できるかどうかわからないエラーが大量に発生します。この特定のケースでは噛むことができないほど噛んでしまったかもしれませんが、あきらめたくありません。これは私にとって大きな学習曲線であり、いくつかの助けがあれば、これを乗り越えて先に進むことができます.

まず、私の DDL スクリプトは次のとおりです。

そして、これが私の DML スクリプトです (注: これまでのところ、スクリプトは「人」、「学校」、および「プレーヤー」の詳細にレコードを挿入しようとするだけです。これまでに遭遇した問題が修正された場合、これは私を助けることができます後で..):

次に、2 つのスクリプトから生成された MySQL コマンド ライン インターフェイスの出力を示します。エラーに関する詳細情報が表示されます。

そして、これが論理モデルです (誰かが何らかの関係、特に多対多の関係に問題がある場合は、私に知らせてください)。

ここに画像の説明を入力

情報が多すぎて申し訳ありませんが、これだけの情報を提供すれば、私を助けたいと思っている人が簡単になると思いました. 私は DDL スクリプトの調整に 3 時間ほど費やしましたが、長い時間を費やした後、より経験豊富な人に助けてもらう必要があることに気付きました。データベース業界の経験を持つ人に論理モデルを見せたところ、彼らはそれが 3NF に準拠していると信じています。概念モデルと論理モデルを実行することは、私にとってそれほど悪くはありませんでした。論理モデルを実際のスクリプトに変換し、データを正常に挿入すること (テーブルごとに少なくとも 10 レコードを挿入したい) が最大のハードルになりました。

前もって感謝します!

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

mysql - 2 つのテーブルを作成し、最初に 2 番目の外部キーを作成しようとしましたが、機能しませんが、2 番目から作成すると取得できるのはなぜですか?

最初のテーブル 'A' は refid(主キー)、名前、性別、年齢、ステータスで構成されています 2 番目のテーブル 'b' は refid(主キー) と状態名で構成されています。動作しませんが、テーブル B から試してみると動作しました 1) テーブル A からアクセスできないのはなぜですか?

2) A からの参照と B からの参照の違いは何ですか?

「機能しない」とは、外部キーからエラーが発生することを意味します。

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

mysql - カスタム関数呼び出しによって発生した MySQL エラー #1451

すべてのテーブルをデータで埋めるために、多くの選択/更新を含む非常に大きな関数を作成しました。テーブルに入力しようとしましたが、関数を呼び出すときに #1452 エラーを受け取りました

エラーがどのように見えるか

データベースのレイアウトは次のようになります。

そして、テーブルを埋めるために使用している関数は次のようになります

そこにいるすべてのデータベースウィザードに、ご容赦ください。私はこのようなことに慣れていないので、機能が少し肥大化している可能性があります。

とにかく、いくつかの調査によると、親テーブルに存在しない行を指す外部キー列がある場合に上記のエラーが発生することがわかりました。奇妙な点は、テーブルがすべて空であることです。外部キー列が誤って独自のテーブルを指している場合にも発生する可能性がありますが、ここでもそうではありません(私が読んだ同様の問題を理解している限り)。

関数のスコープ内で (デバッグ目的で) SELECT CONCAT() を使用することは許可されていないため、エラーが発生する理由や場所はわかりませんが、 tunes.riddim_fk にデータを挿入する関数が処理されます。

また、riddim_id、genre_id など (親テーブルの ID) を PRIMARY KEY と AUTO_INCREMENT に設定すると、「NOT NULL」を指定していないにもかかわらず、phpMyAdmin はこれらの列に対して「NULL: no」と表示するようになりました。キーの1つが自動的に列をNOT NULLに設定していると思います。

IEにNULLを追加しているため、エラーが発生している可能性があります。関数パラメーター "riddim" が "" (空の文字列) に設定されている場合、riddim_fk 列は? 実際の関数テスト呼び出し (上記のように) とは異なり、空の文字列をパラメーターとして関数に渡さなかったと思います。

助けていただければ幸いです。

編集:タイプミス。

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

mysql - 子行を追加または更新できません: 外部キー制約が失敗します webERp

1and1 アカウントで WebERP を使用しています。データベースを別の 1and1 データベースに移行すると、次のエラーが表示されます: SQL クエリ:

MySQL は次のように述べています。

しかし、元のファイルは問題なく動作します。

0 投票する
10 に答える
141030 参照

mysql - MySQL-子行を追加または更新できません:外部キー制約が失敗します

これはよくある間違いのようですが、私の人生ではこれを理解することはできません。

MySQLに外部キーを介して結合された一連のInnoDBユーザーテーブルがあります。親userテーブル、および電子メールアドレスやアクションなどを格納する子テーブルのセット。これらはすべてuser、外部キーによって親テーブルに関連付けられておりuid、すべての親キーと子キーはint(10)です。

すべての子テーブルには、uidを指す外部キー制約を持つ値がありuser.uid、とに設定されON DELETE CASCADEますON UPDATE CASCADE

からユーザーを削除するuserと、子の制約付きエントリがすべて削除されます。ただし、値を更新しようとすると、子テーブルへの変更をuser.uidカスケードするのではなく、次のエラーが発生します。uid

ここで明らかな何かが欠けているに違いないと感じています。でキー制約を削除しuser_email、の値を更新しようとするとuser、同じエラーが発生しますが、次のアルファベットuserの子テーブルが発生するため、テーブル固有のエラーではないと思います。

編集:

からの結果を追加しますSHOW ENGINE INNODB STATUS

0 投票する
3 に答える
30698 参照

mysql - MySQL 外部キー制約 - エラー 1452 - 子行を追加または更新できません

このトピックに関する他の投稿を使用しましたが、うまくいきません。

実行するコードは次のとおりです。

これが私のエラーです:

ノート:

  1. INSERT私がま​​たはUPDATEに入るときに起こりtblOrderItemsます。
  2. tblCatalogItems ItemIDあり0004ます。参照:これ

MySQL Workbench によって生成される create ステートメントは次のとおりです。

この関連する投稿で提案を試みましたが、結果はありませんでした。これは、実際にはまだ使用されていない新しいデータベースです。偽のデータで埋めただけです。どんなアイデアでも大歓迎です。

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

mysql - MYSQL エラー 1452 を抑制

毎日の株式関連データを保持するように設計されたテーブルがあり、価格の日付はカレンダー テーブルへの外部キーです。カレンダー テーブルには、週末を含まないすべての有効な日付が一覧表示されます。20 年間の毎日の為替データを入手したところですが、少なくともいくつかの週末が含まれているようです。週末のレコードでエラー 1452 が発生することを知って (外部キー制約が失敗したことを示します) 、すべての挿入コマンドを含むスクリプトを作成しました。mysql はレコードを挿入しようとして失敗し、先に進むため、これで問題ありません。問題は、何千もの挿入エラーのすべてについて、エラー メッセージがコンソールにエコーされることです。この余分な stdout 印刷はすべて、最初の挿入スクリプトを大幅に遅くしています (わずか 1 年、少なくとも 10 分かかりました)。

このエラー メッセージを非表示にするにはどうすればよいですか? エラーメッセージが「重要なことを教えてくれている」とか、「注意を払う」とか「スクリプトをデバッグする」必要があるなどとは言わないでください。エラーが発生する理由を正確に知っており、単にそれを抑制したいだけです。

0 投票する
3 に答える
10762 参照

foreign-keys - heidisqlでmysqlに外部キーを追加しようとしています

heidisql を使用してテーブルに外部キーを追加しようとしましたが、エラー 1452 が発生し続けます。

読み回した後、すべてのテーブルが InnoDB で実行されていることを確認し、それらが同じデータ型であることを確認しました。キーを追加できる唯一の方法は、意図しないデータをすべて削除することです。これにかなりの時間を費やしました。

ここに私のテーブル作成コードがあります:

ここに表2があります

最後に、エラーとともに作成コードを示します。

私が提供できるものが他にある場合は、これが本当に私を悩ませていることをお知らせください. xamppインストーラーに付属の5.5.27 - MySQL Community Server (GPL) も使用しています。