Navigation

    西南IT社区
    • Register
    • Login
    • Search
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目

    MySQL中的隐藏列

    极客生涯
    mysql中的隐藏列 select语句
    1
    1
    50
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 一
      一场美梦 last edited by

        mysql中存在一些隐藏列,例如行标识、事务ID、回滚指针等,不知道大家是否和我一样好奇过,要怎样才能实际地看到这些隐藏列的值呢?

        实际上,将行标识称为隐藏列并不准确,因为它并不是一个真实存在的列,DB_ROW_ID实际上是一个非空唯一列的别名。

        首先我们需要了解,官方给出的定义是这样的:如果在表中存在主键或非空唯一索引,并且仅由一个整数类型的列构成,那么就可以使用SELECT语句直接查询_rowid,并且这个_rowid的值会引用该索引列的值。

        可以发现,在文档中着重提到的几个关键字如:主键、唯一索引、非空、单独一列、数值类型,接下来我们就可以从这些角度入手,并且以神秘字段_rowid为例。

        存在主键,在这种情况下查看执行结果,_rowid可以被正常查询,可以看到在设置了主键,并且主键字段是数值类型的情况下,_rowid直接引用了主键字段的值。对于这种可以被select语句查询到的的情况,可以将其称为显式的rowid。
      f7872c0c-38ad-49f2-a2c7-48da601fb1f6-image.png
        无主键,存在唯一索引:在这种情况下查询可以正常执行,并且_rowid引用了唯一索引所在列的值。唯一索引与主键不同的是,唯一索引所在的字段可以为NULL。
      c99eb921-8ab7-47dc-abf3-1afed3255752-image.png
        存在联合主键或联合唯一索引。在这一情况中执行结果无法显示的查询到_rowid。
      108b4e41-970c-48d8-b653-126bc3a54804-image.png
        存在多个唯一索引。在mysql中,每张表只能存在一个主键,但是可以存在多个唯一索引。可以看到在这一情况下_rowid的值与no这一列的值相同,证明了_rowid会严格地选取第一个创建的唯一索引作为它的引用。
      15568bb9-a27c-4f48-abd0-8fcabd5007e8-image.png

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      使用HTML构建办公软件 使用HTML构建办公软件 使用HTML构建办公软件
      一
      光
      A
      庆
      小
      U
      Y
      L
      I
      Z
      I
      Y
      C
      Z
      E
      Y
      U
      I
      A
      Z
      Y
      Y
      罗
      R
      大

      西南地区IT社群(QQ)
      云南
      【昆明网页设计交流吧】243627302
      【昆明nodejs交流吧】 243626749
      【VUE】838405306
      【云南程序员总群】343606807
      【昆明UI设计】104031254
      【云南软件外包】15547313
      贵州
      【PHP/java源码/站长交流群】55692114
      四川
      【成都Java/JavaWeb交流】86669225
      【vaScript+PHP+MySql】116270060
      【UI设计/设计交流学习群】135794928
      重庆
      【诺基亚 JAVA游戏博物馆】 559479780
      【PHP,Java,Python,C++接单】 442103442
      西藏
      社群
      昆明网页设计交流吧
      友情链接
      • Funtask
      • Funtask 社区
      • SUWIS
      ©2019-2021 滇ICP备20006698号