l'éditeur php Yuzai est là pour répondre à une question commune à tout le monde : "Quand la transaction go goose sera-t-elle soumise ?" De manière générale, lors de l'exécution d'une opération de validation de transaction, la base de données soumettra toutes les opérations de modification de la transaction en cours à la base de données en même temps. Cela garantit l'atomicité de la transaction, c'est-à-dire que soit toutes les validations réussissent, soit toutes les annulations échouent. Par conséquent, l’heure de soumission de la transaction correspond au moment où l’opération de validation de la transaction est effectuée, et non au début ou à la fin de la transaction. Pour les méthodes d'utilisation spécifiques, veuillez vous référer à la documentation du pilote de base de données concerné.
tx
comme indiqué ci-dessousgo goose
Ma question est la suivante :
commited
enregistrées dans la base de données ? tx.commit()
pour soumettre la migration. Voici mon dossier de migration en 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 }
Je ne peux pas exécuter les migrations ci-dessus après la section down
car lorsque je les exécute, j'obtiens errtxdone
(source). Je souhaite toujours exécuter la migration go up00002
plusieurs fois (à des fins de test). Comment puis-je faire ceci? Qu'est-ce que je fais de mal ici ? down
部分之后运行上述迁移,因为当我运行它们时,我得到了 errtxdone
(源)。我仍然想多次运行 go 迁移 up00002
(用于测试)。我怎样才能做到这一点?我在这里做错了什么?
因此,只需浏览他们的文档此处即可显示提交已经在 AddMigrations
调用中发生 - 这是使用 ofc 事务,由 go goose
Il suffit donc de parcourir leur documentation ici cela montrera que le commit est déjà là Appel AddMigrations - ceci est géré en interne par
en utilisant des transactions ofc - très sympa :)
--no-transaction
选项,我们可以使用它来完全控制db
Il en va de même pour SQL, comme nous pouvons le voir
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!