当用户点击另一个用户时,chats表中会创建一个新条目,其中包含发送者和接收者id,但聊天消息为空。
当用户发送消息时,根据他将消息发送给谁,聊天表中的项目将用所发送的消息来更新。
the message object looks like this [{message: "abc", sender: "person",
reciever:"person2"}] // there will be multiple object inside the arr
现在我的table是这样的:
chats (sender_id, reciever_id, messages jsonb[])
这是我发送的查询
UPDATE chats SET
messages = '[
{ message: 'hi', sender: 'test', reciever: null },
{ message: 'hello', sender: 'test', reciever: null }
]' WHERE
sender_id = 47 AND
reciever_id = 43
这导致了错误,并且没有更新表。错误没有告诉我太多,但是我认为这是由于我的对象不是json格式(键上的字符串)
那么我可以使用什么数据类型来允许我使用MY格式更新消息列呢?
1条答案
按热度按时间eimct9ow1#
json必须使用双引号。
您的数据也不需要jsonb数组,所以我删除了它
| 发件人标识|接收方标识|讯息|
| - ------|- ------|- ------|
| 四十七|四十三|[{"发件人":"测试"、"消息":"嗨"、"接收者":null},{"发件人":"测试"、"消息":"你好"、"接收者":空}]|
fiddle