没有生成外键是不是现在的版本不会生成外键了
来源: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打印出来看看
相似问题