GORM Playground Link
https://github.com/go-gorm/playground/pull/705
Description
betch save Conflict by uniqueIndex, id err
CREATE TABLE `users` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_users_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` (`id`, `name`)
VALUES
(1,'user1'),
(2,'user2');
type User struct {
ID uint `gorm:"primarykey" json:"id"`
Name string `gorm:"uniqueIndex;size:100" json:"name"`
}
user1 := User{
Name: "user2",
}
user2 := User{
Name: "user3",
}
users := []User{user1, user2}
db.Debug().Save(users)
fmt.Println(users[0].ID, users[1].ID)
output
3 4
except
2 3
mysql data
id name
---
1 user1
2 user2
3 user3