ITPub博客

首页 > 数据库 > MySQL > mysql 5.7 _rowid虚列之一

mysql 5.7 _rowid虚列之一

原创 MySQL 作者:wisdomone1 时间:2019-11-29 17:49:46 0 删除 编辑

前言

oracle有虚列rowid,mysql是否也有类似的功能呢。本文主要记录相关的知识,便于后续使用。

联系方式

  • 微信公众号

  • 微信


培训课件

(收费20元已共享到百度云盘便于同学们获取)

目录

  • 查阅官方资料

  • 测试示例

  • 小结

查阅官方资料

13 SQL Statement Syntax
13.1 Data Definition Statements
13.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: 0
mysql> 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 1
mysql>

小结

_rowid不适用于下述场景:

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

  • 主键是联合主键

  • 唯一列是非空的


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-2666277/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    11965375