56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
from settings import get_connection_racetimer
|
|
|
|
def main():
|
|
with get_connection_racetimer() as conn:
|
|
with conn.cursor(buffered=True) as cur:
|
|
sql_statement = """
|
|
select column_name from information_schema.columns
|
|
where table_schema = 'unloze_racetimer_css'
|
|
and TABLE_NAME = 'zetimer_table_new'
|
|
order by table_name,ordinal_position
|
|
"""
|
|
cur.execute(sql_statement)
|
|
res = cur.fetchall()
|
|
|
|
#removing steamid and name
|
|
res.pop(0)
|
|
res.pop(0)
|
|
sql_statement = "TRUNCATE TABLE unloze_racetimer_css.top5"
|
|
cur.execute(sql_statement)
|
|
for index, result in enumerate(res):
|
|
result = result[0]
|
|
sql_statement = f"""alter table unloze_racetimer_css.top5
|
|
add column if not exists {result} DOUBLE """
|
|
cur.execute(sql_statement)
|
|
if index == 0:
|
|
sql_statement = f"""
|
|
insert into unloze_racetimer_css.top5 ({result})
|
|
SELECT t2.{result}
|
|
FROM unloze_racetimer_css.zetimer_table_new t2
|
|
WHERE
|
|
t2.{result} > 0
|
|
ORDER BY t2.{result} ASC
|
|
LIMIT 5
|
|
"""
|
|
else:
|
|
sql_statement = f"""
|
|
update unloze_racetimer_css.top5 t
|
|
INNER JOIN (
|
|
SELECT
|
|
{result},
|
|
ROW_NUMBER() OVER (ORDER BY {result} ASC) AS row_num
|
|
FROM unloze_racetimer_css.zetimer_table_new
|
|
WHERE {result} > 0
|
|
limit 5
|
|
) t2 ON t.id = t2.row_num
|
|
set t.{result} = t2.{result}
|
|
where t.id = t2.row_num
|
|
"""
|
|
cur.execute(sql_statement)
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|