2015-03-02 3 views
0

Когда я пытаюсь вставить данные в свою базу данных, это просто просто перезаписать весь файл или не сохранить его правильно. Мои мысли по поводу этого сценария в том, что, если я побежал его несколько раз он будет выводить это:Python Sqlite3 - данные перезаписываются

(1, 126) 
(2, 127) 
(3, 126) 
(4, 127) 

Я также теперь, что если я не создать таблицу в сценарии, он дает мне ошибку, что таблица Безразлично 't существует, хотя таблица была создана, в прошлый раз я запускал скрипт.

import sqlite3 

# Connecting to the database file 
conn = sqlite3.connect("MyDB.db") 
c = conn.cursor() 

# Check if table exists 
c.execute("DROP TABLE IF EXISTS t1") 


# Create table 
c.execute('''CREATE TABLE t1(
      a INTEGER PRIMARY KEY, 
      b INTEGER);''') 

# Insert value 
c.execute('''INSERT INTO t1 VALUES(NULL,126);''') 
c.execute('''INSERT INTO t1 VALUES(NULL,127);''') 

# Save changes 
conn.commit() 

for row in c.execute('SELECT * FROM t1'): 
     print(row) 

# Output: 
# (1, 126) 
# (2, 127) 
conn.close() 

Я действительно хочу, чтобы это работало, так как я работаю на школьном проекте, где мой продукт должен сделать функциональный магазин, где вы можете добавлять, удалять продукты и сортировать их по дате их добавления.

ответ

2

Два вопроса:

  1. Вы сбросив таблицу, если существует, то это будет всегда удаляет таблицу:

    c.execute("DROP TABLE IF EXISTS t1") 
    
  2. Вы повторно создать таблицу после падения:

    c.execute('''CREATE TABLE t1(
        a INTEGER PRIMARY KEY, 
        b INTEGER);''') 
    

Yo u мог бы прокомментировать выше коды и повторно запустить ваш скрипт, чтобы получить нужный вам результат. Но в финальной версии убедитесь, что db и таблица существует до написания.

+0

Хорошо, что имеет смысл, но как создать таблицу, если таблица не существует? – RasmusGP

+1

Я думаю, вам просто нужно изменить 'CREATE TABLE', чтобы' CREATE TABLE if NOT EXISTS'. – user3

Смежные вопросы