Skip to content

Error in the documentation for transactions? #3485

Description

@tobyxdd

Version

1.26.0

What happened?

https://docs.sqlc.dev/en/latest/howto/transactions.html

In the given example, the code tries to select a row from records and increase the counter by 1 (in a transaction). According to the official MySQL manual:

If you query data and then insert or update related data within the same transaction, the regular SELECT statement does not give enough protection. Other transactions can update or delete the same rows you just queried. InnoDB supports two types of locking reads that offer extra safety - https://dev.mysql.com/doc/refman/8.4/en/innodb-locking-reads.html

So, shouldn't

-- name: GetRecord :one
SELECT * FROM records
WHERE id = $1;

be

-- name: GetRecord :one
SELECT * FROM records
WHERE id = $1
FOR UPDATE;

in this case?

Metadata

Metadata

Assignees

No one assigned

    Labels

    📚 mysqlbugSomething isn't workingdocumentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions