使用标准输入复制批量插入

弗罗克斯

嗨,我正在尝试使用 PHP (Laravel) 中的 COPY 命令

DB::statement("COPY table_name FROM '".$file."' WITH DELIMITER ',' CSV HEADER")

但如果因为superuser权限失败

必须是超级用户或 pg_read_server_files 角色的成员才能从文件复制

提示:任何人都可以复制到标准输出或标准输入。psql 的 \copy 命令也适用于任何人

所以我试图找到如何用STDINPHP做同样的事情,但只从命令行找到了例子。

所以我正在研究如何将 COPY 与 STDIN 与 PHP 一起使用?或者也许有另一种方法可以批量插入 50K+ 记录。

PS 我无法superuser向用户添加角色,因为数据库托管在 DigitalOcean 上,他们拒绝授予superuser访问权限。

亚森

STDIN是指向文件的指针。参见stdin(3) - Linux 手册页

这些符号中的每一个都是指向FILE类型指针stdio(3),并且可以与fprintf(3)fread(3)等函数一起使用

因此,您可以STDIN作为文件打开

<?php  
$stdin = fopen('php://stdin', 'r');  
DB::statement("COPY table_name FROM '".$stdin."' WITH DELIMITER ',' CSV HEADER")
?>

PS DO 的安全团队是对的:您不应将superuser角色用于常规任务。无论是在 DO 的服务器上还是在其他任何地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Ecto批量插入

来自分类Dev

使用RethinkDB批量插入

来自分类Dev

使用循环批量插入

来自分类Dev

使用 Oracle 批量插入

来自分类Dev

C#中的SQL批量复制/插入

来自分类Dev

批量复制批量大小影响插入

来自分类Dev

使用peewee进行批量处理的批量插入

来自分类Dev

使用npgsql将iEnumerable批量插入/复制到表中

来自分类Dev

使用NEST批量插入ElasticSearch

来自分类Dev

如何使用批量模式在 mule 中插入数据库以进行 XML 输入

来自分类Dev

如何使用cqlengine在cassandra中批量插入/批量插入?

来自分类Dev

标准输入标准输出复制/粘贴不起作用

来自分类Dev

用油门将文件插入标准输入

来自分类Dev

用油门将文件插入标准输入

来自分类Dev

干净的方法来复制标准输入-由git pre-push使用?

来自分类Dev

批量复制之前将DBNull值插入DataTable列

来自分类Dev

事务复制快照是否作为“批量插入”处理

来自分类Dev

从 HashMap 高效批量插入/复制到表中

来自分类Dev

使用其ID复制单选值以使用JavaScript作为值插入到输入中

来自分类Dev

使用排除从当前目录批量复制文件

来自分类Dev

批量插入

来自分类Dev

在Hibernate中使用本机SQL批量插入

来自分类Dev

使用R批量插入/更新到mongoDB

来自分类Dev

如何使用NEST elasticsearch批量插入Json?

来自分类Dev

使用Flask-SQLAlchemy批量插入

来自分类Dev

使用批量插入时如何修剪空间?

来自分类Dev

使用SQL批量插入特定值

来自分类Dev

如何使用NEST elasticsearch批量插入Json?

来自分类Dev

使用Python脚本进行Mozenda批量插入