After some digging and thanks to the SO posts/answers below, I managed to build the right code for my question :
- How to correctly set AUTO INCREMENT fo a column in SQLite, using Python?
- Concatenating a string and primary key Id while inserting
- Concatenate Numbers in sqlite as text with a dash character
1 - How to store the dataframe in the database :
import sqlite3 as sql
import pandas as pd
### --- READING THE CSV AS A DATAFRAME
df = pd.read_csv('londonweather.csv', delimiter=',')
### --- CREATING THE DATABASE + CURSOR
conn = sql.connect('weather_SO.db')
cur = conn.cursor()
### --- CREATING THE TABLE
cur.execute('''CREATE TABLE IF NOT EXISTS WEATHER_TABLE
(unique_id TEXT PRIMARY KEY, Year INTEGER, Month INTEGER, Tmax REAL, Tmin REAL, Rain REAL, Sun REAL)''')
### --- COPYING THE DATAFRAME TO THE TABLE
df.to_sql('WEATHER_TABLE', conn, if_exists='append', index=False)
2 - How to create a unique ID (OIDx) :
### --- UPDATING THE VALUE OF THE UNIQUE ID
cur.execute("UPDATE WEATHER_TABLE set unique_id = 'OID' || rowid")
### --- SAVING CHANGES
conn.commit()
3 - How to insert multiple new elements/rows :
### --- INSERTING NEW ROWS THE TABLE
data_weather = [(2022, 7, 20.0, 20.0, 1.0, 2.0), (2022, 8, 19.3, 20.0, 2.0, 8.0)]
cur.executemany('INSERT INTO WEATHER_TABLE(Year, Month, Tmax, Tmin, Rain, Sun) VALUES (?,?,?,?,?,?)', data_weather)
### --- UPDATING THE UNIQUE ID OF THE NEW ROWS
conn.execute("UPDATE WEATHER_TABLE set unique_id = 'OID' || rowid")
### --- SAVING CHANGES AND CLOSING CONNECTION
conn.commit()
conn.close()
RESULT (in SQLiteStudio), showing the last five rows :
