Ich habe die folgende Struktur (zur besseren Lesbarkeit gekürzt)
type schedule struct { id int userid int user user `gorm:"embedded;foreignkey:userid;references:userid"` }
Und dann ist hier meine Benutzerstruktur (zur besseren Lesbarkeit noch einmal gekürzt):
type user struct { id int userid int isactive bool }
Ich erhalte die Werte in der schedule
结构上尝试 createinbatches
(如 []schedule
)。但是当我这样做时,插入查询还尝试插入 user
-Struktur.
Beispiel (Teil des Codes) einfügen:
err := db.transaction(func(tx *gorm.db) error { if err := tx.createinbatches(&schedules, len(schedules)).error; err != nil { return err //rollback } }
Der Vollständigkeit halber hier die Fehler:
Error Inserting Schedule Batch: Error 1054: Unknown column 'is_active' in 'field list'
Gibt es ein Tag oder etwas, das ich tun kann, um die Benutzerstruktur aus der Einfügeabfrage wegzulassen? Wenn ich die Abfrage ausgebe, wird sie angezeigt
insert into schedule(计划列...,[附加用户结构列])
Ich habe auch das Feldberechtigungs-Tag basierend auf der Dokumentation hier ausprobiert
Das Problem ist, dass Sie sich im schedule
结构中为 user
使用 embedded
-Tag befinden. Wenn Sie es entfernen, sollte es wie erwartet funktionieren. Sie können darüber in Dokumente
Deine schedule
Struktur sollte also so aussehen:
type Schedule struct { ID int UserId int User User `gorm:"foreignKey:UserId;references:UserId"` }
Das obige ist der detaillierte Inhalt vonGORM CreateInBatches mit eingebettetem Strukturfehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!