gpt4 book ai didi

python - python 中的 sqlite3 简单查询挂起

转载 作者:行者123 更新时间:2023-12-01 05:27:03 25 4
gpt4 key购买 nike

我正在尝试用 python 和 sqlite3 进行简单的查询:

#!/usr/bin/env python
# -*- coding: utf-8; -*-

import sqlite3

db = sqlite3.connect('test.db')
query = """CREATE TABLE `home` (
`id` int(11) not null auto_increment,
`full_name` char(255) not null,
`display_name` char(255),
`ip_address` char(255) not null,
`user` char(255) not null,
PRIMARY KEY (`id`)
);"""
db.execute(query)
db.commit()
db.close()

但是当我运行脚本时,什么也没有发生;我的意思是:在目录中创建了一个名为 test.db 的文件,但之后 shell 保留在那里而不返回任何内容(甚至是提示符),并且我需要使用kill -9 终止脚本

有什么帮助吗?

最佳答案

我不知道为什么你的脚本明显挂起,但你的查询中有 SQL 语法错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.OperationalError: near "auto_increment": syntax error

SQLite 只有 AUTOINCREMENT关键字,并且仅在 PRIMARY KEY constraint 之后才受支持;您必须将 PRIMARY KEY 行从底部移至 id 列。您还必须使用正确的 INTEGER 类型,而不是 int

SQLite 也会忽略列大小,您不妨删除它们。

以下查询有效:

query = """CREATE TABLE `home` (
`id` integer primary key autoincrement,
`full_name` char(255) not null,
`display_name` char(255),
`ip_address` char(255) not null,
`user` char(255) not null
);"""

我在char列中留下了列大小,但您也可以制作这些TEXT(没有大小)并完成它。

关于python - python 中的 sqlite3 简单查询挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com