我有一个数据库模式文件,我在Flask模块中读到。
PRAGMA foreign_keys = 1;
drop table if exists user;
create table user(uid integer primary key autoincrement,
username text not null,
password text not null,
email text not null);
drop table if exists asset;
create table asset(aid integer primary key autoincrement,
assetname text not null,
releasedate text,
FOREIGN_KEY(owner) REFERENCES user);
当我删除外键字段时,它工作正常。
错误追踪:
File "main.py", line 75, in <module>
create_table()
File "main.py", line 30, in create_table
conn.cursor().executescript(f.read())
sqlite3.OperationalError: near "(": syntax error
我可以发布使用此脚本的方法,但我不认为问题就在那里。
答案 0 :(得分:1)
由于@soon指出您在FOREIGN KEY
关键字上存在语法错误,因此您还应该定义列名称(所有者)。
drop table if exists asset;
create table asset(aid integer primary key autoincrement,
assetname text not null,
releasedate text,
owner integer,
FOREIGN KEY(owner) REFERENCES user);
答案 1 :(得分:0)