Skip to content

Error in the documentation for transactions? #3485

Open
@tobyxdd

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