COPY INTO:特权不足:从.. LOCKED进行COPY INTO要求没有索引的表-MonetDB

问题描述

我正在尝试将数据加载到表中,但是出现以下错误:“ copY INTO:特权不足:从.. LOCKED进行copY INTO要求表没有索引”

我用来创建表格的代码

var transporter = nodemailer.createTransport ({
     host: ‘mail.example.com’,port: 587,secure: false,auth: {
         user: 'info@example.com’,pass: ‘password’
     },tls: {
         ciphers: ‘SSLv3’
     },debug: true
});

我用来加载表格的代码

CREATE TABLE region (
r_regionkey INT NOT NULL,r_name  CHAR(25)    NOT NULL,r_comment   VARCHAR(152));

我使用的绝对路径有问题吗?

解决方法

您确定在COPY INTO语句之前没有创建任何键(主键或外键)吗?这是因为MonetDB为创建的每个主/外键都创建了一个索引,然后在COPY INTO LOCKED中得到此错误消息。

(这看起来更像是评论,因为我没有足够的声誉来发表评论)

,

要使用COPY INTO和COPY FROM,需要明确授予用户权限。请参阅https://www.monetdb.org/Documentation/SQLReference/DataDefinition/Privileges/GrantAndRevoke

如果如Pedro所述,LOCKED是造成您麻烦的原因,则可以将其删除。引入LOCKED是为了在没有争用的情况下提高数据加载速度,但根据我的经验,几乎没有任何性能提升。