【问题标题】:What locks are involved with Select INTO statement?Select INTO 语句涉及哪些锁?
【发布时间】:2018-08-08 11:56:54
【问题描述】:

在 MySQL 中,就像 SELECT 结合 INSERT 或 CREATE 涉及锁定一样,SELECT column INTO @variable 语句是否同样适用?

【问题讨论】:

    标签: mysql sql select select-into


    【解决方案1】:

    假设 InnoDB 并且没有显式锁定(FOR UPDATE 等) - 不涉及锁定。 这只是一个普通的选择,只是结果进入了一些变量。

    其他情况下的锁定是因为插入/更新,而不是选择本身(并且它不会锁定选择中的表)。

    CREATE TABLE ... SELECT ... 不会锁定任何内容。

    【讨论】:

    • 来自精美手册 :) “CREATE TABLE ... SELECT ... 使用共享的下一个键锁或作为一致读取执行 SELECT,如 INSERT ... SELECT。” dev.mysql.com/doc/refman/5.7/en/innodb-locks-set.html
    • 嗯...是的,显然它确实适用于可重复读取和可序列化。 READ COMMITTED 没有锁 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2012-04-07
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多