在postgresql中进行一些插入,其中表结构是
CREATE TABLE user_subservices(
user_id uuid,
subservice_id uuid
);
我正在传递一个user_id数组和一个subservice_idq:=INSERT INTO user_subservices (user_id,subservice_id) VALUES (unnest(Array[$1]::uuid[]),$2)
为$1
传递[]uuid.UUID
,为$2
传递单个uuid
我用gorm来运行那些查询
err := db.dbConn.DB.Debug().Exec(q, users, Id).Error
在debug中我得到:
INSERT INTO user_subservices (user_id,subservice_id) VALUES (unnest(Array['[8bf23c03-4112-4097-a352-b567d5a00052 9epolf4b-ff4a-49ef-bojd-2890ff3a7yhf]']::uuid[]),'00uj9000-0100-0120-0000-034000000068')
它没有作为一个合适的数组来插入
有任何解决方案可以插入??
1条答案
按热度按时间njthzxwz1#
在调试日志中,这是操作中使用的SQL查询:
这是一个不正确的查询,正确的查询应该是:
请看引号(
'
)和逗号(,
)的位置,还有Array()
的语法不正确,应该是Array[]
。除此之外,我还看到了您的查询的另一个问题。两个UUID无效:
9epolf4b-ff4a-49ef-bojd-2890ff3a7yhf
00uj9000-0100-0120-0000-034000000068
即使在修复查询之后,您也可能得到错误
SQL Error [22P02]: ERROR: invalid input syntax for type uuid: "00uj9000-0100-0120-0000-034000000068"
。