Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sqlite3中的外键约束失败_Python_Flask_Sqlite - Fatal编程技术网

Python Sqlite3中的外键约束失败

Python 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

我正在第二次执行这个脚本(这些表以前存在),并且得到一个外键约束失败错误。我是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 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)。

奇怪,因为它在我的机器上工作。你又试过建立数据库了吗?对我有用。您的表是否包含数据?是的,这是导致错误的原因吗?