如何用pgAdmin向PostgreSQL现有表导入列不匹配的CSV数据?
处理PostgreSQL非空列默认值导入的两种方法(基于pgAdmin 4/PSQL Tool)
方法一:通过pgAdmin图形化工具配置导入
- 右键目标表,选择导入/导出数据进入导入配置界面
- 确认已选好CSV文件、匹配好CSV对应的4个目标列后,切换到选项标签页
- 勾选填充缺失的列选项,PostgreSQL会自动为未指定的非空列使用其预定义的默认值
- 若部分非空列未设置默认值,需先修改表结构:
- 右键目标表→属性→列标签
- 选中需要设置的列,在默认值栏填入对应值(如字符串填
''、数字填0、时间类型填CURRENT_TIMESTAMP) - 保存修改后重新执行导入操作
方法二:使用PSQL Tool执行命令导入
- 打开pgAdmin连接目标数据库,点击顶部菜单栏工具→PSQL Tool
- 若非空列无预定义默认值,先执行ALTER TABLE命令添加默认值(示例):
ALTER TABLE 你的目标表名 ALTER COLUMN 非空列1 SET DEFAULT '默认字符串', ALTER COLUMN 非空列2 SET DEFAULT 0, ALTER COLUMN 非空列3 SET DEFAULT CURRENT_TIMESTAMP;
- 执行COPY命令导入CSV数据,仅指定CSV对应的4列,剩余非空列将自动使用默认值:
COPY 你的目标表名(列名1, 列名2, 列名3, 列名4) FROM '/本地CSV文件的绝对路径.csv' DELIMITER ',' CSV HEADER;
注意:如果是远程服务器,CSV路径需为服务器可访问路径;若用本地文件,可替换为
\copy命令(\copy支持读取本地文件)
内容的提问来源于stack exchange,提问作者Ebony Maw
相关产品推荐
相关产品推荐

