【エンジニア英語】update or delete on table “testA_table” violates foreign key constraint “testB_table_uuid_foreign” on table “testB_table”

[エンジニア向け]英語のエラーを分解

エラーが発生した経緯

Unitテストを実装時に発生。

テーブルの更新・削除のテストを作成しているときに下記英語のエラー内容が出力されました。

エラー内容

update or delete on table “testA_table” violates foreign key constraint “testB_table_uuid_foreign” on table “testB_table”

エラーの解決方法

外部キー制約に違反しているのが原因でした。

なので、外部キー制約に違反しないよう修正しました。

Laravelのfactoryメソッドでテストデータを作成しているのですが、外部キーを固定の値にして使い回していたことで他のテストにもろ影響して発生していたようです。

外部キーを明示的に指定して解決しました。

固定で作成するとテストケース修正時などに、思わぬところでエラーになるので気をつけないとですね。。。


エンジニアの英語読解

どの文型に当てはまるのか分解しつつ、読解してみます。

文型的には、3文型かな。

翻訳

テーブル「testA_table」の更新または削除は、テーブル「testB_table」の外部キー制約「testB_table_uuid_foreign」に違反しています

単語

violate:他動詞。違反する

foreign;形容詞。外部の

key:名詞。鍵

constraint:名詞。制約

まとめ

まとめ

動詞さえ特定できれば、なんてことはなかったです。

violate(ヴァイオリート)なんて単語知らんかったし、update、deleteが動詞かと盛大に勘違いしてましたw

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です