问题描述
我正在尝试将数据加载到表中,但是出现以下错误:“ 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是为了在没有争用的情况下提高数据加载速度,但根据我的经验,几乎没有任何性能提升。