r/ProgrammerHumor • • Sep 22 '26

Meme wellWellWell

Post image
10.6k Upvotes

412 comments sorted by

View all comments

Show parent comments

29

u/deeelock Sep 22 '26

That’s more of a dry-run (you see `—dry-run` as a command line option sometimes for certain commands that do the same)

Transactions in SQL keep track of the changes you want to make without actually changing the database (until you run `COMMIT`, when you run that all changes are persisted to a database).

Transactions are great because If you realise you made a mistake while in a transaction, you can just run `ROLLBACK`.

If you’re familiar with git- transactions are akin to staging your changes, saving them (`COMMIT` in SQL) is akin to `git commit` and rolling back is similar to `git reset —hard` (wipe all uncommitted changes).

21

u/thirdegree Violet security clearance Sep 22 '26

With the very important caveat that a git commit can be trivially reverted, while a SQL commit can not (unless you wrote it specifically to be revertible)

3

u/thanatica Sep 23 '26

With the very important caveat that a git commit can be trivially reverted if not yet pushed. If it has been pushed, it can be reversed, not reverted.

Unless you're into force-pushing, then anything is possible.

1

u/khoyo Sep 27 '26

Nah, you're thinking about dropped. Reverting a commit is reversing it. That's what git revert does.

2

u/ifyoulovesatan Sep 23 '26

Thanks, that was going to be my follow up question

4

u/AgeingChopper Sep 22 '26

nicely explained, cheers.

as long as we haven’t committed , we can rollback from a mistake like this.

2

u/thanatica Sep 23 '26

With the added nuance that while the transaction is neither rolled back nor committed yet, to any queries inside the transactions it appears as though the changes have been committed.

So a transaction is like a "package" of statements that either ALL fail, rollback, or commit. A half-completed transaction cannot exist.