如何解决如何将json数据插入到postgres数据库表中
我是初学者,正在尝试使用教程将 JSON 值插入数据库
我使用以下命令创建了表
if ($this->getUser()) {
return $this->redirectToRoute('admin_home');
}
该表是用 table_name 创建的。
现在我正在尝试将值插入到数据库中:
CREATE TABLE table_name( id character varying(50),data json NOT NULL,active boolean NOT NULL,created_at timestamp with time zone NOT NULL,updated_at timestamp with time zone NOT NULL,CONSTRAINT table_name_pkey PRIMARY KEY (id)
);
它抛出以下错误
错误:JSON '{
类型的输入语法无效谁能帮我解析并将 JSON 值插入到数据库中?
解决方法
您不能在 JSON 字符串中包含任意 SQL 命令。从 JSON“角度”来看,SELECT NOW()
是一个无效值,因为它缺少双引号。但即使您使用了 "select now()"
,它会作为 SQL 查询执行并替换为当前时间戳)。
但我不明白你为什么要把它包装成一个 jsonb_populate_record
。更好的解决方案(至少在我看来)是:
INSERT INTO table_name (id,data,active,created_at,updated_dat)
VALUES ('1','{"key": "value"}',true,now(),now();
如果你真的想把事情复杂化,你需要使用字符串连接:
SELECT id,updated_at
FROM json_populate_record (NULL::table_name,format('{
"id": "1","data":{
"key":"value"
},"active":true,"created_at": "%s","updated_at": "%s"
}',now())::json
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。