This commit is contained in:
oscarz
2025-03-20 10:44:08 +08:00
parent ef64a8667d
commit 22ee675b4c

View File

@ -32,9 +32,34 @@ def add_columns_to_table(table_name):
except sqlite3.Error as e: except sqlite3.Error as e:
print(f"添加字段时出现错误: {e}") print(f"添加字段时出现错误: {e}")
# 使用示例 def alter_chapters_table():
if __name__ == "__main__":
# 循环遍历 0 到 100 的数字 # 循环遍历 0 到 100 的数字
for i in range(100): for i in range(100):
table_name = f'{tbl_name_chapters_prefix}_{i}' table_name = f'{tbl_name_chapters_prefix}_{i}'
add_columns_to_table(table_name) add_columns_to_table(table_name)
def create_finished_view():
# 生成视图创建 SQL 代码
view_sql = "CREATE VIEW view_completed_book_ids AS\n"
first_query = True
for i in range(100):
table_name = f'{tbl_name_chapters_prefix}_{i}'
# 检查表是否存在
cursor.execute(f"SELECT name FROM sqlite_master WHERE type='table' AND name='{table_name}'")
if cursor.fetchone():
if not first_query:
view_sql += "UNION ALL\n"
view_sql += f"SELECT book_id\nFROM {table_name}\nGROUP BY book_id\nHAVING SUM(CASE WHEN has_content = 1 THEN 1 ELSE 0 END) = COUNT(*)\n"
first_query = False
# 执行视图创建 SQL 代码
try:
cursor.execute(view_sql)
conn.commit()
print("视图创建成功")
except sqlite3.Error as e:
print(f"视图创建失败: {e}")
# 使用示例
if __name__ == "__main__":
create_finished_view()