From 739f97b32c7708a7c49d3fd57d78a22885efdf05 Mon Sep 17 00:00:00 2001 From: ahao <92586826+ahaostudy@users.noreply.github.com> Date: Sat, 9 Mar 2024 17:11:46 +0800 Subject: [PATCH] feat: map mysql error 1451 to gorm error (#145) --- error_translator.go | 1 + error_translator_test.go | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/error_translator.go b/error_translator.go index bf91276..44ab277 100644 --- a/error_translator.go +++ b/error_translator.go @@ -9,6 +9,7 @@ import ( // The error codes to map mysql errors to gorm errors, here is the mysql error codes reference https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html. var errCodes = map[uint16]error{ 1062: gorm.ErrDuplicatedKey, + 1451: gorm.ErrForeignKeyViolated, 1452: gorm.ErrForeignKeyViolated, } diff --git a/error_translator_test.go b/error_translator_test.go index a23e6db..527802e 100644 --- a/error_translator_test.go +++ b/error_translator_test.go @@ -29,6 +29,11 @@ func TestDialector_Translate(t *testing.T) { args: args{err: &mysql.MySQLError{Number: uint16(1062)}}, want: gorm.ErrDuplicatedKey, }, + { + name: "it should translate error to ErrForeignKeyViolated when the error number is 1451", + args: args{err: &mysql.MySQLError{Number: uint16(1451)}}, + want: gorm.ErrForeignKeyViolated, + }, { name: "it should translate error to ErrForeignKeyViolated when the error number is 1452", args: args{err: &mysql.MySQLError{Number: uint16(1452)}},