当我尝试在有主键和外键的表中加载 .tbl 数据时,Monetdb 出现此错误,这是怎么回事?这是命令:
COPY INTO monet.CUSTOMER FROM '/home/nicola/Scrivania/ssb-dbgen-master/1gb/customer.tbl' USING DELIMITERS '|', '|\n' LOCKED;
在禁用(外)键的情况下批量加载到表中总是好的。您可以在加载后使用 ALTER 语句添加它们。请参阅https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/LoadingBulkData
MonetDB 文档的另一部分说:“警告建议在加载文件后向表添加完整性约束。ALTER 语句执行批量完整性检查,并且通常更有效地执行这些检查。” https://www.monetdb.org/Documentation/Manuals/SQLreference/CopyInto
通常,对于现有表的批量加载,建议删除索引/外键/其他约束,加载表,然后重新创建索引/外键/其他约束。