Ich führe dieses Skript zum zweiten Mal aus (diese Tabellen existieren bereits) und erhalte einen Fremdschlüssel-Constraint-Fehler. Ich bin ein Anfänger in Sqlite3 und bin nicht in der Lage, die Ursache dahinter herauszufinden.Fremdschlüsseleinschränkung in Sqlite3 fehlgeschlagen
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);
lese ich diese Datei in einem Python-Skript.
Fehler:
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
Funktioniert für mich. Enthalten Ihre Tabellen Daten? –
Ja, hat das den Fehler verursacht? –