2016-07-06 3 views
0

두 번째로이 스크립트를 실행하고 있습니다 (이 테이블은 이전에 존재합니다). 외래 키 제약 조건 실패 오류가 발생합니다. 나는 Sqlite3의 초보자이며 그 원인을 파악할 수 없다.외래 키 제약 조건이 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); 

나는 파이썬 스크립트에서이 파일을 읽고 있어요.

오류 :

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 
+0

저에게 맞습니다. 테이블에 데이터가 있습니까? –

+0

예, 오류가 발생 했습니까? –

답변

0

테이블을 삭제할 때 효과는 모든 행을 삭제할 때와 동일하며 이러한 삭제는 실패 할 수 있습니다.

먼저 모든 테이블을 올바른 순서 (asset 먼저)로 삭제하십시오.

-1

당신은 외래 키로, 텍스트이다 소유자를 설정합니다. 이것을 정수로 설정하십시오.

+0

변경했는데 여전히 같은 오류가 발생합니다. –

+0

내 컴퓨터에서 작동하기 때문에 이상합니다. 데이터베이스 구축을 다시 시도 했습니까? – alexpeits