问题:Laravel DB::raw 复制

我使用 Laravel 5.5,我有一个非常大的文件,我需要将其内容插入到 postgres 数据库中。在我的研究中,我看到了 Postgresql 文档中的 COPY 函数。复制函数文档。

我在 PgAdmin 中测试了下面的命令并且工作正常。

COPY requisitions FROM '/srv/www/billing_log' DELIMITER ',';

所以我看到在 Laravel 中我们可以使用 DB::raw() 之类的东西在 postgres 中执行这些命令。我尝试使用下面的代码,但没有任何反应,并且没有显示错误。

public function insertFile()
{
    DB::raw("COPY requisitions FROM '/srv/www/billing_log' DELIMITER ','");
    return 'OK';
}

返回“OK”,我的数据库配置在其他方法上运行良好。

有人可以帮我吗?

解答

DB::raw不执行任何操作,它只是返回一个表达式以在查询生成器中使用。

您可以使用DB::statement()执行原始语句。

https://laravel.com/docs/5.6/database#running-queries

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容