modify scripts
This commit is contained in:
@ -15,6 +15,12 @@ tbl_name_books = 'books'
|
|||||||
tbl_name_chapters_prefix = 'chapters'
|
tbl_name_chapters_prefix = 'chapters'
|
||||||
tbl_name_section = 'books_sections'
|
tbl_name_section = 'books_sections'
|
||||||
|
|
||||||
|
|
||||||
|
# 检查 SQLite 版本
|
||||||
|
sqlite_version = sqlite3.sqlite_version_info
|
||||||
|
if sqlite_version < (3, 24, 0):
|
||||||
|
logging.warning("当前 SQLite 版本低于 3.24.0,可能不支持 ON CONFLICT 子句。")
|
||||||
|
|
||||||
# 获取表的列名和默认值
|
# 获取表的列名和默认值
|
||||||
def get_table_columns_and_defaults(tbl_name):
|
def get_table_columns_and_defaults(tbl_name):
|
||||||
try:
|
try:
|
||||||
@ -61,7 +67,7 @@ def insert_or_update_common(data, tbl_name, uniq_key='href'):
|
|||||||
columns = ', '.join(processed_data.keys())
|
columns = ', '.join(processed_data.keys())
|
||||||
values = list(processed_data.values())
|
values = list(processed_data.values())
|
||||||
placeholders = ', '.join(['?' for _ in values])
|
placeholders = ', '.join(['?' for _ in values])
|
||||||
update_clause = ', '.join([f"{col}=EXCLUDED.{col}" for col in processed_data.keys() if col != {uniq_key}]) + ', updated_at=datetime(\'now\', \'localtime\')'
|
update_clause = ', '.join([f"{col}=EXCLUDED.{col}" for col in processed_data.keys() if col != uniq_key]) + ', updated_at=datetime(\'now\', \'localtime\')'
|
||||||
|
|
||||||
sql = f'''
|
sql = f'''
|
||||||
INSERT INTO {tbl_name} ({columns}, updated_at)
|
INSERT INTO {tbl_name} ({columns}, updated_at)
|
||||||
|
|||||||
Reference in New Issue
Block a user