SQL表已插入值但查询无显示,寻求解决方案
插入SQL表后查不到数据的解决办法
- 事务没提交:要是用的是InnoDB这类支持事务的引擎,插完数据必须执行
COMMIT;才能把数据写到物理表,不然只有当前会话能看到(重启会话也没了)。赶紧敲COMMIT;再查。 - 插错表了:核对下
INSERT和SELECT的表名,别搞混了——比如Linux系统下MySQL表名是区分大小写的,插user表却查User表,肯定看不到。 - 插入其实没成功:检查插入语句的语法,比如字符串有没有加单引号、字段类型和值对不对(比如给int字段插了字符串)。有些数据库开了非严格模式,这种情况不会报错,但数据根本没插进去。
- 查询条件写错:看看
SELECT语句的WHERE条件是不是把刚插的数据过滤掉了——比如你插的id是100,查询时写了id < 100,那当然查不到。 - 权限不够:确认你的账号有查询这个表的权限,有的账号只给了插入权限,没给查询权限,自然看不到数据。
- 被自动操作删改了:检查表有没有触发器,会不会插入后自动删数据;也可能有其他脚本、进程在你插完之后,把数据删了或者改了。
内容的提问来源于stack exchange,提问作者Gaurav Kumar
相关产品推荐
相关产品推荐

