8000 复合主键没有起作用 · Issue #3514 · go-gorm/gorm · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
复合主键没有起作用 #3514
Closed
Closed
@lbfatcgf

Description

@lbfatcgf

GORM Playground Link

xx

Description

迁移数据库时没有生成复合主键。
我预期的sql是CREATE TABLE member (room_id bigint,user_id bigint,status bigint) PRIMARY KEY (room_id,user_id)
,但是info的结果是

2020/09/23 15:07:11 /gopath/pkg/mod/gorm.io/driver/mysql@v1.0.1/mysql.go:52
[info] replacing callback `gorm:update` from /gopath/pkg/mod/gorm.io/driver/mysql@v1.0.1/mysql.go:52

2020/09/23 15:07:11 /home/lbf/work/gowork/gormtest/main.go:23
[0.199ms] [rows:0] SELECT DATABASE()

2020/09/23 15:07:11 /home/lbf/work/gowork/gormtest/main.go:23
[1.066ms] [rows:0] SELECT count(*) FROM information_schema.tables WHERE table_schema = "gormtest" AND table_name = "member" AND table_type = "BASE TABLE"

2020/09/23 15:07:11 /home/lbf/work/gowork/gormtest/main.go:23
[27.842ms] [rows:0] CREATE TABLE `member` (`room_id` bigint,`user_id` bigint,`status` bigint)

在数据库操作软件中也没有主键约束。

go v1.14
gorm.io/driver/mysql v1.0.1
gorm.io/gorm v1.20.1

复现代码.zip

CREATE DATABASE IF NOT EXISTS gormtest DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

package main

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

var db *gorm.DB

func main() {
	dsn := "root:123456@tcp(localhost:3306)/gormtest?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		Logger: logger.Default.LogMode(logger.Info),
	})
	if err != nil {
		fmt.Println("xx")
		panic(err)
	}

	db.AutoMigrate(
		Member{},
	)

	
}

type Member struct {
	RoomID int64 `json"roomid" gorm:"primaryKey;"`
	UserID int64 `json"userid" gorm:"primaryKey;"`
	Status int64 `json"status" gorm:"column:status;   Type:int;  not null;"`
}

func (Member) TableName() string {
	return "member"
}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0