千家信息网

如何理解mysql 5.7 _rowid虚列

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,如何理解mysql 5.7 _rowid虚列,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。查阅官方资料13 SQL Statemen
千家信息网最后更新 2024年11月20日如何理解mysql 5.7 _rowid虚列

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

查阅官方资料

13 SQL Statement Syntax13.1 Data Definition Statements13.1.14 CREATE INDEX Syntax

测试示例

创建测试表并插入数据

mysql> create table t_rowid(a int,b int,key(a));Query OK, 0 rows affected (0.03 sec)mysql> insert into t_rowid select 1,1;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> insert into t_rowid select 2,2;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0

显示_rowid

mysql> select _rowid from t_rowid;+--------+| _rowid |+--------+| 1 || 2 |+--------+2 rows in set (0.00 sec)mysql> select _ROWID from t_rowid;+--------+| _ROWID |+--------+| 1 || 2 |+--------+2 rows in set (0.00 sec)

显示_rowid及部分列

mysql> select  _rowid,a from t_rowid;+--------+---+| _rowid | a |+--------+---+|      1 | 1 ||      2 | 2 |+--------+---+2 rows in set (0.00 sec)

显示_rowid及全部列

mysql> select  _rowid,a,b from t_rowid;+--------+---+------+| _rowid | a | b    |+--------+---+------+|      1 | 1 |    1 ||      2 | 2 |    2 |+--------+---+------+2 rows in set (0.00 sec)

不能显示_rowid及*

mysql> select  _rowid,* from t_rowid;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* from t_rowid' at line 1mysql>

_rowid不适用于下述场景:

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

  • 主键是联合主键

  • 唯一列是非空的

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

0