From 22ee675b4ccade9b37079eb0b4e6ffff55881e88 Mon Sep 17 00:00:00 2001 From: oscarz Date: Thu, 20 Mar 2025 10:44:08 +0800 Subject: [PATCH] modify --- aabook/src/alter_table.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/aabook/src/alter_table.py b/aabook/src/alter_table.py index 72e37fb..590f4e9 100644 --- a/aabook/src/alter_table.py +++ b/aabook/src/alter_table.py @@ -32,9 +32,34 @@ def add_columns_to_table(table_name): except sqlite3.Error as e: print(f"添加字段时出现错误: {e}") -# 使用示例 -if __name__ == "__main__": +def alter_chapters_table(): # 循环遍历 0 到 100 的数字 for i in range(100): table_name = f'{tbl_name_chapters_prefix}_{i}' 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() \ No newline at end of file