python - 错误 : sqlite3. 操作错误 : no such table: main. m

标签 python sql python-3.x sqlite

我在 python 中有一个非常简单的代码,基本上我尝试为数据库中的每个表创建索引(已经存在)。数据库和我的脚本文件位于同一文件夹中。获取表名称列表并尝试为第一个表创建索引后,我收到以下错误消息:

c.execute("CREATE INDEX IF NOT EXISTS "+tableName[m]+"Date ON "+tableName[m]+" (date)"); sqlite3.OperationalError: no such table: main.m

数据库中没有任何具有此名称的表(main.m)!

我的代码:

import sqlite3
DBname = 'myDatabase.sqlite';
# connect to the database
conn = sqlite3.connect(DBname);
c    = conn.cursor();
c.execute("SELECT name FROM sqlite_master WHERE type='table'");
tables = c.fetchall();
print("\nCreating the indices for each table in the database ...");
for m in range (0,len(tables)):
    tableName = tables[m][0];
    print(tableName)
    c.execute("CREATE INDEX IF NOT EXISTS "+tableName[m]+"Date ON "+tableName[m]+" (date)");
    c.execute("CREATE INDEX IF NOT EXISTS "+tableName[m]+"Year ON "+tableName[m]+" (year)");
conn.close()

感谢您的帮助!

最佳答案

如果 tableName 变量根据您的注释显示正确的表名称,则在创建 sql 语句时只需使用 tableName 而不是 tableName[m] :

c.execute("CREATE INDEX IF NOT EXISTS "+tableName+"Date ON "+tableName+" (date)");
c.execute("CREATE INDEX IF NOT EXISTS "+tableName+"Year ON "+tableName+" (year)");  

关于python - 错误 : sqlite3. 操作错误 : no such table: main. m,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743428/

相关文章:

android - 仅显示来自 sql 数据库的选定行的问题 (android.)

mysql - 从最接近所选日期的数据库中获取唯一数据

python - 使用python从csv文件中提取部分数据

python - 使用 find_peaks 查找局部最大值

python - 如何使用 python 的 os.listdir 跳过不可访问的文件夹?

python - python pandas 中的嵌套数据框/索引

python - 如何将鼠标单击事件发送到 mac osx 中的窗口

sql - 带有正则表达式的自定义 postgreSQL 域以接受一组特定的字符串

python - 当我分享我的使用 pip 的 python 项目时,我如何确保用户安装了 pip 程序?

python - 遍历类似 excel 的字符组合范围