我想知道如何在create .io中更新存储在数组中的值
- 我有一个博客表-
blog_tbl
- 数据类型为数组的列-
tags
- A
id
列 - 在标签列中,我有-
["tag1","tag2","tag3"]
我想知道如何将'tag1'
更改为'tag99'
I tried
update blog_tbl set tags['tag1'] = 'tag99' where id = '1';
还有我怎么在结尾加一个呢?让它-
["tag1","tag2","tag3","tag4"]
多谢
不幸的是,目前还不可能。数组元素只能使用下标符号(例如select tags[1] from blog_tbl;
)来选择,但不能更新。也许可以添加一个GH问题来请求该功能。
您可以使用下面的模式:https://crate.io/docs/reference/sql/occ.html#optimistic-update
但是,这需要您在客户端执行修改。伪代码:
updated = False
while not updated:
cursor.execute('SELECT array_field, "_version" FROM table WHERE id=1')
row = cursor.fetchone()
current_array_field = row[array_field]
current_array_field.append('newtag')
cursor.execute('UPDATE array_field = current_array_field WHERE id=1 AND "_version" = row[version]')
if cursor.rowcount > 0:
updated = True
这将使您的更新对于同一字段的并发更新是半安全的。