@@ -60,54 +60,54 @@ import (
60
60
)
61
61
62
62
type fakeTable struct {
63
- ID int ` gorm:"AUTO_INCREMENT"`
64
- Name string
65
- Email string
66
- CreatedAt time.Time
67
- UpdatedAt time.Time
63
+ ID int ` gorm:"AUTO_INCREMENT"`
64
+ Name string
65
+ Email string
66
+ CreatedAt time.Time
67
+ UpdatedAt time.Time
68
68
}
69
69
70
70
func main () {
71
- db , err := gorm.Open (" mysql" , " mydb" )
72
- if err != nil {
73
- log.Fatal (err)
74
- }
75
-
76
- var insertRecords []interface {}
77
- for i := 0 ; i < 10 ; i++ {
78
- insertRecords = append (insertRecords,
79
- fakeTable{
80
- Name: fmt.Sprintf (" name%d " , i),
81
- Email: fmt.Sprintf (" test%d @test.com" , i),
82
- // you don't need to set CreatedAt, UpdatedAt
83
- },
84
- )
85
- }
86
-
87
- err = gormbulk.BulkInsert (db, insertRecords, 3000 )
88
- if err != nil {
89
- // do something
90
- }
91
-
92
- // Columns you want to exclude from Insert, specify as an argument
93
- err = gormbulk.BulkInsert (db, insertRecords, 3000 , " Email" )
94
- if err != nil {
95
- // do something
96
- }
97
-
98
- // Fetch returning values
99
- dbForReturning := db.Set (" gorm:insert_option" , " RETURNING id, name, created_at" )
100
- var returned []struct {
101
- ID int
102
- Name string
103
- CreatedAt time.Time
104
- }
105
- err = gormbulk.BulkInsertWithReturningValues (dbForReturning, insertRecords, &returned, 3000 )
106
- if err != nil {
107
- // do something
108
- }
109
- // Values of `returned` will be as follows
110
- // {{ID: 1, Name: "name0", CreatedAt: 2021-10-31 16:21:48.019947 +0000 UTC}, ...}
71
+ db , err := gorm.Open (" mysql" , " mydb" )
72
+ if err != nil {
73
+ log.Fatal (err)
74
+ }
75
+
76
+ var insertRecords []interface {}
77
+ for i := 0 ; i < 10 ; i++ {
78
+ insertRecords = append (insertRecords,
79
+ fakeTable{
80
+ Name: fmt.Sprintf (" name%d " , i),
81
+ Email: fmt.Sprintf (" test%d @test.com" , i),
82
+ // you don't need to set CreatedAt, UpdatedAt
83
+ },
84
+ )
85
+ }
86
+
87
+ err = gormbulk.BulkInsert (db, insertRecords, 3000 )
88
+ if err != nil {
89
+ // do something
90
+ }
91
+
92
+ // Columns you want to exclude from Insert, specify as an argument
93
+ err = gormbulk.BulkInsert (db, insertRecords, 3000 , " Email" )
94
+ if err != nil {
95
+ // do something
96
+ }
97
+
98
+ // Fetch returning values
99
+ dbForReturning := db.Set (" gorm:insert_option" , " RETURNING id, name, created_at" )
100
+ var returned []struct {
101
+ ID int
102
+ Name string
103
+ CreatedAt time.Time
104
+ }
105
+ err = gormbulk.BulkInsertWithReturningValues (dbForReturning, insertRecords, &returned, 3000 )
106
+ if err != nil {
107
+ // do something
108
+ }
109
+ // Values of `returned` will be as follows
110
+ // {{ID: 1, Name: "name0", CreatedAt: 2021-10-31 16:21:48.019947 +0000 UTC}, ...}
111
111
}
112
112
```
113
113
0 commit comments