MySQL查询Author表仅显示列无行值,如何让行值正常显示?
以下是几个常见的排查方向,你可以逐一验证:
确认插入操作是否真正生效
执行插入语句后,查看控制台返回的Rows affected数值,如果是0,说明根本没插入任何数据。你可以紧接着执行SELECT ROW_COUNT();,这个命令会返回最近一次DML操作影响的行数。另外,如果用了事务(比如InnoDB引擎),插入后必须执行COMMIT;才能让数据持久化,否则只有当前会话能看到,重新连接或其他会话查不到。检查表约束是否阻止了数据插入
主键重复、非空列赋值NULL、唯一键冲突、外键不匹配这些情况,都会导致插入失败,有时候MySQL只会返回警告而不是错误(取决于sql_mode设置)。执行SHOW WARNINGS;可以查看最近的警告信息,排查约束问题。比如你给主键列插入了重复值,插入操作就会直接失败。确认查询的表是否正确
- 检查当前使用的数据库:执行
SELECT DATABASE();,看看是不是你创建Author表的那个库,如果不是,切换到对应库再查(USE 目标库名;)。 - 检查表名大小写:Linux系统下MySQL的表名是区分大小写的,如果你创建的是小写的
author,但查询时写的Author,可能会访问到错误的表(如果恰好存在同名大小写不同的表),可以用SHOW TABLES;查看当前库的所有表确认。
- 检查当前使用的数据库:执行
检查表的完整性
执行CHECK TABLE Author;,查看表是否存在损坏或异常,尤其是MyISAM引擎的表容易出现文件损坏的情况;InnoDB引擎的话可以确认表空间是否正常。
内容的提问来源于stack exchange,提问作者vinny
相关产品推荐
相关产品推荐

