私は自分の脳をPHP+MySQLからPythonに移行している最中であり、現在、sqliteが組み込まれているため、後で他の何かへの仲介として使用しています。
使用する初期データベースを設定しようとすると、複数の行を持つINSERT
ステートメントでエラーがスローされます。INSERT
import sqlite3
query = """CREATE TABLE IF NOT EXISTS "users" (
"userID" INTEGER PRIMARY KEY autoincrement,
"email" varchar(255) NOT NULL,
"forename" varchar(50) NOT NULL,
"surname" varchar(50) NOT NULL
);
INSERT INTO "users" ("userID", "email", "forename", "surname")
VALUES
(1, 'user1@example.com', 'Test', 'User'),
(2, 'user2@example.com', 'Test', 'User');"""
db_conn = sqlite3.connect('test.db')
try:
db_conn.cursor().executescript(query)
db_conn.commit()
except:
print "error with database"
raise
finally:
db_conn.close()
実行すると、次のようになります。
error with database
Traceback (most recent call last):
File "dbTest.py", line 20, in <module>
db_conn.cursor().executescript(query)
sqlite2.OperationalError: near ",": syntax error
どの「、」が気に入らなかったかを正確に見つけるのにかなりの時間がかかりました(つまり、本当に?SQLエラーは最悪です!)。それは確かに「、」INSERT
行を区切ることです。
私はどんな愚かなことをしましたか?