【问题标题】:Export + Import PSQL Table in PHP在 PHP 中导出 + 导入 PSQL 表
【发布时间】:2016-12-01 17:08:58
【问题描述】:

我在 psql 中有一个如下所示的语言表。

我的目标是导出我的语言表并使用 PHP 将其重新导入。

PHP

导出

shell_exec('psql -E -U postgres -d portal -c "COPY languages TO \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' "');

我得到languages.csv 导出成功。

如果我打开它,里面有这个。

1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25

导入

现在,我要开始导入了,这就是我所做的

shell_exec('psql -E -U postgres -d portal -c "COPY languages (code, text, nl, es, fr, created_at, updated_at) FROM \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' csv;"');

我一直得到

ERROR:  invalid input syntax for integer: "1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25"

上下文:复制语言,第 1 行,列 id:“1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:4...”

我该如何解决这个问题?与我的导出命令有关吗?

【问题讨论】:

    标签: php database psql


    【解决方案1】:

    用于导入的 COPY 命令比 CSV 文件少一列。它试图将您的 updated_at 列作为第二行的 code 字段。

    表格定义:

    (code, text, nl, es, fr, created_at, updated_at)
    

    行:

    "1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25"
    

    地图:

    code - 1
    text - "h"
    nl - "Advanced Settings"
    es - "Geavanceerde instellingen"
    fr - "Ajustes avanzados"
    created_at - "Réglages avancés"
    updated_at - 2016-11-23 14:41:25
    code2 - 2016-11-23 14:41:25 // <-- Problem
    

    【讨论】:

    • 感谢您的指正。更新到这个(id, code, text, nl, es, fr, created_at, updated_at) 现在就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 2021-03-21
    • 2017-07-22
    • 2016-01-12
    • 2017-10-04
    • 2013-12-30
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多