modify
This commit is contained in:
@ -38,9 +38,25 @@ def alter_chapters_table():
|
|||||||
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 check_view_exist(view_name):
|
||||||
|
cursor.execute("SELECT name FROM sqlite_master WHERE type='view' AND name=?", (view_name,))
|
||||||
|
if cursor.fetchone():
|
||||||
|
try:
|
||||||
|
# 删除已存在的视图
|
||||||
|
drop_view_sql = f"DROP VIEW {view_name};"
|
||||||
|
cursor.execute(drop_view_sql)
|
||||||
|
conn.commit()
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
print(f"删除视图 {view_name} 时出错: {e}")
|
||||||
|
|
||||||
|
|
||||||
def create_finished_view():
|
def create_finished_view():
|
||||||
# 生成视图创建 SQL 代码
|
# 生成视图创建 SQL 代码
|
||||||
view_sql = "CREATE VIEW view_completed_book_ids AS\n"
|
view_name = 'view_completed_book_ids'
|
||||||
|
check_view_exist(view_name=view_name)
|
||||||
|
|
||||||
|
view_sql = f"CREATE VIEW {view_name} AS\n"
|
||||||
first_query = True
|
first_query = True
|
||||||
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}'
|
||||||
@ -56,10 +72,60 @@ def create_finished_view():
|
|||||||
try:
|
try:
|
||||||
cursor.execute(view_sql)
|
cursor.execute(view_sql)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
print("视图创建成功")
|
print(f"视图 {view_name} 创建成功。")
|
||||||
except sqlite3.Error as e:
|
except sqlite3.Error as e:
|
||||||
print(f"视图创建失败: {e}")
|
print(f"创建视图 {view_name} 时出错: {e}")
|
||||||
|
|
||||||
|
def create_finished_books_info_view():
|
||||||
|
# 视图名称
|
||||||
|
view_name = 'view_completed_books_info'
|
||||||
|
check_view_exist(view_name=view_name)
|
||||||
|
|
||||||
|
# 视图创建 SQL 语句
|
||||||
|
view_sql = f"""
|
||||||
|
CREATE VIEW {view_name} AS
|
||||||
|
SELECT
|
||||||
|
b.id,
|
||||||
|
b.rank,
|
||||||
|
b.category,
|
||||||
|
b.name,
|
||||||
|
b.href,
|
||||||
|
b.num,
|
||||||
|
b.author,
|
||||||
|
b.tickets,
|
||||||
|
b.update_time,
|
||||||
|
b.status,
|
||||||
|
b.total_words,
|
||||||
|
b.total_clicks,
|
||||||
|
b.month_clicks,
|
||||||
|
b.week_clicks,
|
||||||
|
b.total_recommend,
|
||||||
|
b.month_recommend,
|
||||||
|
b.week_recommend,
|
||||||
|
b.created_time,
|
||||||
|
b.start_page_href,
|
||||||
|
b.start_page_num,
|
||||||
|
b.table_of_contents_href,
|
||||||
|
b.is_latest,
|
||||||
|
b.created_at,
|
||||||
|
b.updated_at
|
||||||
|
FROM
|
||||||
|
{tbl_name_books} b
|
||||||
|
JOIN
|
||||||
|
view_completed_book_ids c ON b.id = c.book_id;
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# 执行视图创建 SQL 语句
|
||||||
|
cursor.execute(view_sql)
|
||||||
|
conn.commit()
|
||||||
|
print(f"视图 {view_name} 创建成功。")
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
print(f"创建视图 {view_name} 时出错: {e}")
|
||||||
|
|
||||||
|
def create_views():
|
||||||
|
create_finished_view()
|
||||||
|
create_finished_books_info_view()
|
||||||
|
|
||||||
# 使用示例
|
# 使用示例
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
create_finished_view()
|
create_views()
|
||||||
Reference in New Issue
Block a user