没有生成外键是不是现在的版本不会生成外键了

来源:4-13 表的关联插入

zifeng62573686180

2021-07-03 14:11:55

package main

import (
"log"
  "os"
  "time"

  "gorm.io/driver/mysql"
  "gorm.io/gorm"
  "gorm.io/gorm/logger"
)

// `User` 属于 `Company``CompanyID` 是外键
type User struct {
gorm.Model
  Name string
  CompanyID int //数据库中存储的字段company_id
  Company Company
}

type Company struct {
ID int
  Name string
}


func main() {
// 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
  dsn := "root:admin123@tcp(127.0.0.1:3306)/gorm_test?charset=utf8mb4&parseTime=True&loc=Local"

  newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
     logger.Config{
SlowThreshold: time.Second, // SQL 阈值
        LogLevel: logger.Info, // Log level
        Colorful: true,        // 禁用彩色打印
     },
  )

// 全局模式
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: newLogger,
  })
if err != nil {
panic(err)
}

db.AutoMigrate(&User{}) //新建了user表和company表,并设置了外键

  db.Create(&User{
Name: "bobby",
     Company: Company{
Name:"慕课网",
     },
  })

db.Create(&User{
Name: "bobby2",

  })

//db.Create(&User{
  // Name:      "bobby2",
  // Company: Company{
  //    ID:1,
  // },
  //})



}


写回答

1回答

bobby

2021-07-05

生成表的sql语句你可以让gorm打印出来看看

0

0 学习 · 1399 问题

查看课程