Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

批量插入不成功,也没收到提示,这方面是否可以优化。 #6257

Closed
moipa-cn opened this issue Apr 22, 2023 · 4 comments
Closed
Assignees
Labels

Comments

@moipa-cn
Copy link

使用postgreSQL15数据库,go环境是1.20.3批量生成测试数据,代码如下,发现生成1000条的时候插入可以成功,但循环一万次的时候,并没有数据插入,也没有提示插入失败。
我不知道是postgreSQL15单次插入有数量上限,还是gorm的问题。

type User struct {
gorm.Model
Name string
Age int
Birthday time.Time
Sex string
}
func main(){
var users []User
for i := 0; i < 10000; i++ {
user := User{Name: RandomString(6, defaultLetters), Sex: RandomString(1, drune), Age: rand.Intn(100), Birthday: randate()}
users = append(users, user)
}
db.Create(&users)
}

以上代码是伪代码,主要是随机生成一些数据。
如果是gorm的问题,是否在无法插入的时候能够提供err信息,感谢

@github-actions github-actions bot added the type:missing reproduction steps missing reproduction steps label Apr 22, 2023
@github-actions
Copy link

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking

@labulakalia
Copy link
Contributor

labulakalia commented Apr 23, 2023

@moipa-cn

package main

import (
	"math/rand"
	"time"
)

type User struct {
	gorm.Model
	Name     string
	Age      int
	Birthday time.Time
	Sex      string
}

func main() {
	var users []User
	for i := 0; i < 10000; i++ {
		user := User{Name: RandomString(6, defaultLetters), Sex: RandomString(1, drune), Age: rand.Intn(100), Birthday: randate()}
		users = append(users, user)
	}
	err := db.Create(&users).Error
	if err != nil {
		// check err
	}
}

@github-actions
Copy link

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking

@a631807682
Copy link
Member

Some databases have a limit on the number of agrs. Of course, in any case, you should not create a large number of records at one time. You need to control the number
As @labulakalia said, you need to detect the error yourself

https://gorm.io/docs/create.html#Batch-Insert

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants