前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GO语言基础之gorm操作MySQL删除数据

GO语言基础之gorm操作MySQL删除数据

原创
作者头像
墨紫羽墨
发布2022-03-28 14:31:57
1.4K0
发布2022-03-28 14:31:57
举报
文章被收录于专栏:FutureTesterFutureTester

删除数据也是需要where条件的,否则是会执行失败的

方法一:

代码语言:go
复制
package mysql

import (
	"fmt"
	"testing"
	"time"

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

type Userinfo struct {
	UserId    uint32    `gorm:"column:USER_ID;PRIMARY_KEY"`
	UserName  string    `gorm:"column:USER_NAME"`
	LoginDate time.Time `gorm:"column:LOGIN_DATE"`
	ClientVar string    `gorm:"column:CLIENT_VER"`
}

func (Userinfo) TableName() string {
	return "userinfo"
}

func deleteUserById() {
	// 根据ID删除数据
	db := sqlLocalClient()
	ub := &Userinfo{}
	err := db.First(&ub).Error // 根据主键排序查出一条数据
	if err != nil {
		panic(err)
	}
	fmt.Printf("userinfo: %+v", ub)
	err = db.Model(&Userinfo{}).Delete("USER_ID = ?", ub.UserId).Error
	if err != nil {
		panic(err)
	}
}

func TestDelete(t *testing.T) {
	deleteUserById()
}

执行结果:

可以看到是先查询的一条数据,然后去删掉的,删数据的SQL里面是根据where 条件里面的user_id来删的数据。

方法二:

代码语言:javascript
复制
func deleteUserById() {
	// 根据ID删除数据
	db := sqlLocalClient()
	ub := &Userinfo{}
	err := db.First(&ub).Error // 根据主键排序查出一条数据
	if err != nil {
		panic(err)
	}
	fmt.Printf("userinfo: %+v", ub)
	err = db.Model(&Userinfo{}).Delete("USER_ID = ?", ub.UserId).Error
	if err != nil {
		panic(err)
	}
}

执行结果:

可以看出来,这两种执行的SQL语句是一样的,但是这两种想写法略有区别

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档