Sixtenson
Sixtenson

Reputation: 97

Create a new SQLite table in python with for-loop

Say I have 100 different integers I want to store like a row with 100 columns.

I am trying it like this:

db = sqlite3.connect("test.db")
c = db.cursor()
c.execute('''
    CREATE TABLE IF NOT EXISTS nums(
        id INTEGER PRIMARY KEY, 
''')
for i in range(100):
    c.execute('''
    ALTER TABLE nums
    ADD ''' + 'column_' + i + '''INTEGER''')

db.commit()

Someone told me that when you are using numbers as column names you could probably do it a better way. But if I for example have a list with strings in python, and I want to loop through them and store every individual string in its own column, the approach would be the same, right?

However, this code runs without errors for me, but no new table is created, how come?

Upvotes: 0

Views: 539

Answers (1)

IoaTzimas
IoaTzimas

Reputation: 10624

Your ALTER statement is incorrect as it's missing the COLUMN after ADD. You can use the following:

for i in range(100):
    c.execute(f'ALTER TABLE nums ADD COLUMN column_{i} INTEGER')

Upvotes: 1

Related Questions