我有一个Json文件,看起来像下面的例子
[
{
Title: "abc",
Author: "abc",
Genre: "abc"
},
]
我正在创建一个全堆栈应用程序,我在项目中使用了node-postgres和Elephant SQL我已经创建了包含上述列的表我想知道如何使用JSON数据填充表
我已经导入了JSON文件并尝试了以下方法
export async function insert () {
return await pool.query (
`INSERT INTO books (
Title,
Author,
Genre) (
SELECT Title, Author, Genre
FROM json_populate_recordset(NULL::books, $1::JSON)
);`,
[JSON.stringify(books)]
);
}
我得到一个错误如下错误:关系“books”的列“title”中的空值违反了非空约束
我在JSON文件中的所有属性都有值,但它一直给我这个错误,有人能告诉我我做错了什么吗?
1条答案
按热度按时间3z6pesqy1#
除非您引用您的标识符,否则Postgres会将其标准化为小写。您可以在错误消息中看到这一点,列实际上被命名为
title
而不是Title
。您可以将查询更改为以获得更好的错误消息-您还需要更改表定义。然而,在Postgres中使用大写标识符是一种反模式(它是非常规的,只会使一切变得更困难),所以最好避免它。不如使用您现有的SQL,或者编写
并将JSON数据更改为