Python Sqlite3中的外键约束失败
我正在第二次执行这个脚本(这些表以前存在),并且得到一个外键约束失败错误。我是Sqlite3的初学者,无法找出它背后的原因 Schema.sqlPython Sqlite3中的外键约束失败,python,flask,sqlite,Python,Flask,Sqlite,我正在第二次执行这个脚本(这些表以前存在),并且得到一个外键约束失败错误。我是Sqlite3的初学者,无法找出它背后的原因 Schema.sql 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 nul
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,
isadmin integer default 0);
drop table if exists asset;
create table asset(aid integer primary key autoincrement,
assetname text not null,
releasedate text,
owner integer default 0,
isreserved integer default 0,
foreign key(owner) references user(uid) on delete set default);
我正在用Python脚本读取此文件
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "main.py", line 37, in create_table
conn.cursor().executescript(f.read())
sqlite3.IntegrityError: foreign key constraint failed
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“main.py”,第37行,在create_表格中
连接游标().executescript(f.read())
sqlite3.IntegrityError:外键约束失败
将所有者(文本)设置为外键。尝试将其设置为整数。删除表时,效果与删除所有行时相同,这些删除操作可能会失败
首先按正确的顺序删除所有表(
asset
first)。奇怪,因为它在我的机器上工作。你又试过建立数据库了吗?对我有用。您的表是否包含数据?是的,这是导致错误的原因吗?