gpt4 book ai didi

javascript - 如何防止 Knex 在 PostgreSQL 上插入尾随空格?

转载 作者:行者123 更新时间:2023-11-29 12:43:43 25 4
gpt4 key购买 nike

我正在使用 Node 和包 pgKnexPostgreSQL 上插入数据。这是我的源代码:

var knex = require('knex')({
client: 'pg',
connection: 'postgres://postgres:52Ag98d5@localhost:5433/CRM'
});

var rows = [];
for(var i = 0; i < 20000; i++)
{
rows.push({
name: faker.Name.findName(),
email: faker.Internet.email()
});
}

knex.batchInsert('contact', rows)
.then(() => {
knex.destroy();
});

它工作得很好,除了字符串字段被尾随空格填充。我的意思是...如果一个字段是 character(50) 并且我用 10 个字符填充它,它将在末尾插入 40 个空格。请参阅 pgAdmin 上的突出显示:

image

我不知道这是谁的错。我不知道这是因为 Knex 还是因为 Node pg 驱动程序。

知道如何防止这种行为吗?

最佳答案

原因很简单。 Character(50) 是定长数据类型。

Character datatype:

╔════════════════════════╦════════════════════════════╗
║ Name ║ Description ║
╠════════════════════════╬════════════════════════════╣
║ character(n), char(n) ║ fixed-length, blank padded ║
╚════════════════════════╩════════════════════════════╝

If the string to be stored is shorter than the declared length, values of type character will be space-padded; values of type character varying will simply store the shorter string.

解决方法:

改用 VARCHAR(50)

关于javascript - 如何防止 Knex 在 PostgreSQL 上插入尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36517018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com