如何理解mysql 5.7 _rowid虚列,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

查阅官方资料

13SQLStatementSyntax13.1DataDefinitionStatements13.1.14CREATEINDEXSyntax测试示例

创建测试表并插入数据

mysql>createtablet_rowid(aint,bint,key(a));QueryOK,0rowsaffected(0.03sec)mysql>insertintot_rowidselect1,1;QueryOK,1rowaffected(0.00sec)Records:1Duplicates:0Warnings:0mysql>insertintot_rowidselect2,2;QueryOK,1rowaffected(0.00sec)Records:1Duplicates:0Warnings:0

显示_rowid

mysql>select_rowidfromt_rowid;+--------+|_rowid|+--------+|1||2|+--------+2rowsinset(0.00sec)mysql>select_ROWIDfromt_rowid;+--------+|_ROWID|+--------+|1||2|+--------+2rowsinset(0.00sec)

显示_rowid及部分列

mysql>select_rowid,afromt_rowid;+--------+---+|_rowid|a|+--------+---+|1|1||2|2|+--------+---+2rowsinset(0.00sec)

显示_rowid及全部列

mysql>select_rowid,a,bfromt_rowid;+--------+---+------+|_rowid|a|b|+--------+---+------+|1|1|1||2|2|2|+--------+---+------+2rowsinset(0.00sec)

不能显示_rowid及*

mysql>select_rowid,*fromt_rowid;ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'*fromt_rowid'atline1mysql>

_rowid不适用于下述场景:

主键列或者普通列的数据类型不是数字类型

主键是联合主键

唯一列是非空的

关于如何理解mysql 5.7 _rowid虚列问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。