我似乎無法親眼看到,這行代碼有什么問題,在過去的 20 分鐘里一直盯著它看,但我似乎無法弄清楚任何事情。
這是錯誤:
Traceback (most recent call last):
File "C:\Users\usera\PycharmProjects\itptesting_2\itptesting\init_db.py", line 7, in <module>
connection.executescript(f.read()),
sqlite3.OperationalError: near ")": syntax error
和完整代碼:
import sqlite3
connection = sqlite3.connect('database.db')
with open('schema.sql') as f:
connection.executescript(f.read())
cur = connection.cursor()
cur.execute("INSERT INTO posts (title, content) VALUES (?, ?)",
('First Post', 'Content for the first post')
)
cur.execute("INSERT INTO posts (title, content) VALUES (?, ?)",
('Second Post', 'Content for the second post')
)
cur.execute("INSERT INTO users (fullname, email, password) VALUES (?, ?, ?)",
('UserA', '[email protected]', 'asdfghjkl')
)
cur.execute("INSERT INTO entries (stockname, partnum, company, quantity, uom, remarks) VALUES (?, ?, ?, ?, ?, ?)",
('Beer','Albee0001','RES','24','BTL','new stock for promotions ')
)
connection.commit()
connection.close()
和 schema.sql
DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
created_timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
title TEXT NOT NULL,
content TEXT NOT NULL
);
DROP TABLE IF EXISTS signup;
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fullname TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL
);
DROP TABLE IF EXISTS entries;
CREATE TABLE entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
stockname TEXT NOT NULL,
partnum TEXT NOT NULL,
company TEXT NOT NULL,
quantity INTEGER NOT NULL,
uom TEXT NOT NULL,
date_recorded NOT NULL DEFAULT CURRENT_TIMESTAMP,
remarks TEXT NULL,
FOREIGN KEY(id) REFERENCES users(id),
);
我曾嘗試洗掉 database.db 檔案并通過運行 init_db.py 重新生成它,但它仍然給了我同樣的錯誤。我應該怎么辦?
uj5u.com熱心網友回復:
你有幾個問題,這是正確的語法:
CREATE TABLE entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
stockname TEXT NOT NULL,
partnum TEXT NOT NULL,
company TEXT NOT NULL,
quantity INTEGER NOT NULL,
uom TEXT NOT NULL,
date_recorded DATE NOT NULL DEFAULT (CURRENT_TIMESTAMP),
remarks TEXT,
FOREIGN KEY(id) REFERENCES users(id)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/525581.html
標籤:Pythonsqlite
上一篇:sqlite是否適合需要將資訊從一個用戶傳輸到另一個用戶的移動應用程式?如果不是,什么資料庫是合適的?
下一篇:如何解決aws-ec2實體ubuntu機器中的{sqlite3.OperationalError:無法打開資料庫檔案}的問題?
