执行MySQL建表插入语句时遇'NoneType'与'int'比较错误求助
解决SQL执行时报错:'<' not supported between instances of 'NoneType' and 'int'
问题重现
我尝试执行以下SQL创建表并插入记录:
USE sql11690489; CREATE TABLE Boeken ( Titel VARCHAR(50), Schrijver VARCHAR(50) ); INSERT INTO Boeken (Titel, Schrijver) VALUES ('Der einzige und sein eigentum', 'Max Stirner');
执行后收到错误:
Preparing... '<' not supported between instances of 'NoneType' and 'int'
错误分析
这个错误不是SQL语法本身的问题,它属于执行SQL的客户端/脚本(比如Python数据库驱动)在内部处理时抛出的类型错误——本质是某个核心对象(比如数据库游标、连接对象)返回了None,但代码试图把它和整数做比较,导致报错。
解决步骤
- 拆分语句执行:很多数据库驱动/在线编辑器不支持一次性执行多条SQL语句,分开执行每一条:
- 先执行
USE sql11690489; - 单独执行CREATE TABLE语句
- 最后执行INSERT语句
- 先执行
- 检查连接有效性:如果是用脚本(比如Python)执行,确认数据库连接是否成功建立,游标对象是否正常创建(比如
conn.cursor()没有返回None) - 跳过USE语句:连接数据库时直接指定
sql11690489作为默认数据库,避免切换库的操作引发异常 - 排查客户端/驱动问题:如果是用在线工具,尝试换个平台测试;如果是本地脚本,更新数据库驱动到稳定版本(比如mysql-connector-python、psycopg2等)
- 验证权限:确认当前数据库用户拥有
sql11690489库的建表、插入数据权限,权限不足可能间接导致连接/游标异常
内容的提问来源于stack exchange,提问作者user23581442
相关产品推荐
相关产品推荐

