php-Editor Yuzai ist hier, um eine häufig gestellte Frage für alle zu beantworten: „Wann wird die Go-Goose-Transaktion übermittelt?“ In der Go-Sprache hängt die Übermittlung von Transaktionen vom jeweiligen Datenbanktreiber ab. Im Allgemeinen übermittelt die Datenbank beim Durchführen einer Transaktionsfestschreibungsoperation alle Änderungsoperationen der aktuellen Transaktion gleichzeitig an die Datenbank. Dadurch wird die Atomizität der Transaktion sichergestellt, d. h. entweder alle Commits sind erfolgreich oder alle Rollbacks schlagen fehl. Daher liegt der Zeitpunkt der Transaktionsübermittlung bei der Ausführung des Transaktions-Commit-Vorgangs und nicht am Anfang oder Ende der Transaktion. Informationen zu bestimmten Verwendungsmethoden finden Sie in der entsprechenden Datenbanktreiberdokumentation.
tx
wie unten gezeigtgo goose
Meine Frage ist:
commited
in die Datenbank übernommen? tx.commit()
verwenden, um die Migration einzureichen. Hier ist meine Migrationsdatei in Go: func Up00002(tx *sql.Tx) error { _, err := tx.Exec("UPDATE users SET username='admin' WHERE username='root';") if err != nil { return err } if err = tx.Commit(); err != nil { return fmt.Errorf("error during committing the transaction: %w", err) } return nil }
Ich kann die oben genannten Migrationen nach dem Abschnitt down
nicht mehr ausführen, da beim Ausführen die Meldung errtxdone
(Quelle) angezeigt wird. Ich möchte go migration up00002
immer noch mehrmals ausführen (zum Testen). Wie kann ich das machen? Was mache ich hier falsch? down
部分之后运行上述迁移,因为当我运行它们时,我得到了 errtxdone
(源)。我仍然想多次运行 go 迁移 up00002
(用于测试)。我怎样才能做到这一点?我在这里做错了什么?
因此,只需浏览他们的文档此处即可显示提交已经在 AddMigrations
调用中发生 - 这是使用 ofc 事务,由 go goose
Durchsuchen Sie einfach die Dokumentation hier es wird angezeigt, dass der Commit bereits vorhanden ist AddMigrations-Aufruf – dies wird intern
mithilfe von OFC-Transaktionen abgewickelt – sehr nett :)
--no-transaction
选项,我们可以使用它来完全控制db
Das Gleiche gilt für SQL, wie wir
Das obige ist der detaillierte Inhalt vonWann wird die Go Goose-Transaktion eingereicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!