使用 INSERT 返回值 PGSQL 进行更新
UPDATE with INSERT RETURNING value PGSQL
正在尝试用新创建的 ID 更新特定列。示例:
╔═══════════════════════════╗
║ TABLE_LIST_BINDER ║
╠════╦══════════════════════╣
║ id ║ tbl_id_lists ║
╠════╬══════════════════════╣
║ 1 ║ 1,2,3,4,5,6,7,8,9,10 ║
╚════╩══════════════════════╝
╔═════════════════════════════╗
║ TABLE_LIST_ITSELF ║
╠════╦═════════════╦══════════╣
║ id ║ text_or_sm ║ some_val ║
╠════╬═════════════╬══════════╣
║ 11 ║ ok lets see ║ ikd123 ║
╚════╩═════════════╩══════════╝
好的,这是我所拥有的一个粗略示例。
文本说明: 我正在尝试更新 tbl_list_binder 的 tbl_id_lists,方法是将刚刚插入的行添加到 TABLE_LIST_ITSLEF 使用 postgresql。一次查询是否可行?
我目前状态SQL代码:
UPDATE TABLE_LIST_BINDER
SET tbl_id_lists=concat(tbl_id_lists,','(
INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val)
VALUES ('letz danse','mkei')
RETURNING id))
WHERE id=1
我的方法是:使用 concat 组合值的现有文本,然后是逗号,最后是返回的 ID 值..
with _insert as
(
INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val)
VALUES ('letz danse','mkei')
RETURNING id
)
UPDATE TABLE_LIST_BINDER
SET tbl_id_lists=concat(tbl_id_lists,',' || (select id from _insert))
where id = 1;
正在尝试用新创建的 ID 更新特定列。示例:
╔═══════════════════════════╗
║ TABLE_LIST_BINDER ║
╠════╦══════════════════════╣
║ id ║ tbl_id_lists ║
╠════╬══════════════════════╣
║ 1 ║ 1,2,3,4,5,6,7,8,9,10 ║
╚════╩══════════════════════╝
╔═════════════════════════════╗
║ TABLE_LIST_ITSELF ║
╠════╦═════════════╦══════════╣
║ id ║ text_or_sm ║ some_val ║
╠════╬═════════════╬══════════╣
║ 11 ║ ok lets see ║ ikd123 ║
╚════╩═════════════╩══════════╝
好的,这是我所拥有的一个粗略示例。
文本说明: 我正在尝试更新 tbl_list_binder 的 tbl_id_lists,方法是将刚刚插入的行添加到 TABLE_LIST_ITSLEF 使用 postgresql。一次查询是否可行?
我目前状态SQL代码:
UPDATE TABLE_LIST_BINDER
SET tbl_id_lists=concat(tbl_id_lists,','(
INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val)
VALUES ('letz danse','mkei')
RETURNING id))
WHERE id=1
我的方法是:使用 concat 组合值的现有文本,然后是逗号,最后是返回的 ID 值..
with _insert as
(
INSERT INTO TABLE_LIST_ITSELF (text_or_sm, some_val)
VALUES ('letz danse','mkei')
RETURNING id
)
UPDATE TABLE_LIST_BINDER
SET tbl_id_lists=concat(tbl_id_lists,',' || (select id from _insert))
where id = 1;