sqlite3空外键赢得';不能通过进口接受

sqlite3空外键赢得';不能通过进口接受,sql,import,sqlite,Sql,Import,Sqlite,我试图用一些数据填充数据库,而这个特定的外键可以是存在的,也可以是空的(null?)。因此,我使用的是: PRAGMA foreign_keys=on; CREATE TABLE TABLE1(t1 text NOT NULL, t2 text NOT NULL, fl1 float NOT NULL, nullable_fk text NULL, PRIMARY KEY (t1, t2), FOREIGN KEY (nullable_fk ) REFERENCES PARENT_TABLE(

我试图用一些数据填充数据库,而这个特定的外键可以是存在的,也可以是空的(null?)。因此,我使用的是:

PRAGMA foreign_keys=on;

CREATE TABLE TABLE1(t1 text NOT NULL, t2 text NOT NULL, fl1 float NOT NULL,
nullable_fk text NULL,
PRIMARY KEY (t1, t2), FOREIGN KEY (nullable_fk ) REFERENCES PARENT_TABLE(nullable_fk )
ON DELETE CASCADE ON UPDATE NO ACTION);

CREATE TABLE PARENT_TABLE(nullable_fk text NOT NULL, var integer, PRIMARY KEY (nullable_fk));
INSERT INTO PARENT_TABLE(nullable_fk, integer) VALUES ("asd", 123);

CREATE TABLE AUX_TABLE(t1 text NOT NULL, PRIMARY KEY (t1));
INSERT INTO AUX_TABLE(t1) VALUES ("bla");

INSERT INTO TABLE1(t1, t2, fl1, nullable_fk) VALUES ("bla", "bla", 1.1, NULL);
这很好用。但是,如果我尝试导入,它将失败:

File being imported (file name test.txt):
"ble"^"646"^0.170^NULL

Commands being used:
.separator ^
.import test.txt TABLE1

RESULT -> test.txt:1: INSERT failed: FOREIGN KEY constraint failed
如果在此之后我尝试使用文件中的值将插入到,它将正常工作

有人知道.import命令的作用是什么吗

谢谢

编辑:我从其他页面上看到,从CSV文件导入NULL不起作用,这正是我试图做的,建议在其中输入一个值,然后进行更新。但是,由于外键必须存在于另一个表(PARENT_表)中,正确的方法是在PARENT_表中创建一个“临时垃圾条目”,用它代替NULL键,将键更新为NULL,然后从PARENT_表中删除该条目吗


有更好的方法吗?

.import
导入文本文件,因此不可能有空值:您会得到一个空字符串,或者如果您试图拼出来,字符串“NULL”

您可以将文件导入表中,调整其中的任何“错误”值,然后复制到实际表中


或者,您可以暂时使用。

即使禁用外键检查,也无法将NULL传递给表,对吗?但我可以传递一个“NULL”字符串,然后将其更新为NULL。谢谢你的回答!顺便说一句,这就是我所做的:我不想禁用外键检查,所以我在父_表上创建了一个条目(“,0)(我的csv文件有空字符串,它应该为NULL),将test.txt导入表1,最后更新表1 SET nullable_fk=NULL,其中nullable_fk=”“;然后从父_表中删除,其中可为null_fk=“”;