今天在做MySQL的插入操作时,从昨天测试代码时遇到的问题,浪费了很多时间才找到问题所在。在使用mysql insert语句时,这是笔者在数据库应用中遇到的最大的两个坑。
一、"Unknown column ' ' in 'field list'"
数据表的字段为char或者varchar,但是插入数据时是“122344”,即中间是数字时,插入数据是正常的。但是“normal”,即中间是字符串时发现插入后提示"Unknown column ' ' in 'field list'"。变量解析之后由于不带单引号,所以数据库无法识别到这个变量是字符串。在字符串掐架后再添加双引号后再次插入数据就恢复正常了。
二、数据插入操作需要commit
DDL语句是自带commit的,而执行DML命令如果没有提交,将不会写入数据库中,不会被查询到。那么什么是DDL和DML语句呢?数据操作语言(Date Manipulation Language)DML语言,实现对数据的基本操作,”增删改”。数据定义语言(Data Definition Language )DDL语言,可以实现对数据库结构、操作方法等。笔者在使用pymysql库做数据从插入操作时,从例子里面复制出来代码,经过调试后不小心把commit语句给删除了,于是乎一直插入数据失败,但是脚本又没有提示有什么错误。
在做项目时,发现大的问题可以在日常中捋一下思路,但是在实践遇到各种小问题就很繁琐,需要花费大量的时间来调试和测试,特别是遇到环境问题。
网友评论