в Python 2.6.5 с sqlite3.version 2.4.1, я использую следующий код:Почему Sqlite говорит мне, что такой столбец не существует, когда я просто его создал?
c = conn.cursor()
# Create table
c.execute('''create table stocks
(date text, trans text, symbol text,
qty real, price real)''')
# Insert a row of data
c.execute("""insert into stocks
values ('2006-01-05','BUY','RHAT',100,35.14)""")
# Save (commit) the changes
conn.commit()
c.execute('''insert into stocks values(date=?, trans=?, symbol=?, qty=?, price=?
)''', ('08-26-1984', 'SELL', 'GOGL', 3, 400.00))
# We can also close the cursor
if we are done with it
c.close()
И выдает ошибку:
Traceback (most recent call last):
File "dbtest.py", line 18, in <module>
c.execute('''insert into stocks values(date=?, trans=?, symbol=?, qty=?, price=?)''', ('08-26-1984', 'SELL', 'GOGL', 3, 400.00))
sqlite3.OperationalError: no such column: date
Мой вопрос - что чёрта ??? Я создал столбец с именем «дата»! Я провел последние два часа, пытаясь понять, что в мире не так, и я очень расстраиваюсь. Кроме того, когда я пытаюсь открыть его в командной строке, я сказал:
Unable to open database "orders": file is encrypted or is not a database
Любая помощь будет высоко оценена как я собираюсь поставить свой компьютер через стену.
Спасибо!
Как общее правило, это плохая идея, чтобы дать столбец имя, соответствующее ключевое слово в каждой базе данных или на языке, который вы используете для записи в него. На самом деле, я не думаю, что это ваша проблема, но в будущем название столбца «дата», вероятно, вас укусит. –
Это полезный совет. Я просто вытащил код создания примера из [здесь] (http://docs.python.org/library/sqlite3.html). –