I am trying to add a foreign key in recursive Table and enable onDelete onUpdate CASCADE mode to delete all children when parent is deleted (same with update)
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
gorm.Model
Name string
Child *User `gorm:"Foreignkey:Parent"`
Parent uint
}
func main() {
db, err := gorm.Open("mysql", "root@/testdb")
if err != nil {
panic("failed to connect database")
}
defer db.Close()
// Migrate the schema
db.AutoMigrate(&User{})
db.Model(&User{}).AddForeignKey("parent","users(id)","CASCADE","CASCADE")
// Create
u := User{Name: "Parent", Child: &User{Name:"Child"}}
db.Save(&u)
}
Error message