首页 > 解决方案 > 如何使用 dolphindb 数据库动态更新内存表

问题描述

有没有办法使用 dolphindb 动态更新内存表?我需要更多建议来编写动态更新函数。现在我只能得到返回的表名。我尝试了几种方法来更新指定表的数据,但都失败了。

脚本 1:

table1=table(1..6 as id,2..7 as v, 3..8 as v1, 4..9 as v2, 5..10 as v3 );
share table1 as t1;
tableName ="t1";
update!(tableName, `v, 666);

错误报告:

Read only object or object without ownership can't be applied to mutable function update!

脚本 2:

updateSql = "update t1 set v = 999;";
parseExpr(updateSql).eval;

错误报告:

Invalid expression: update t1 set v=999;

更新指定表的正确语法是什么?

标签: sqldolphindbin-memory-tables

解决方案


使用 DolphinDB 的功能更新!更新现有表中的列:

update!(table, colNames, newValues, [filter])

这里的表是一个 DolphinDB 表。发生错误是因为您的脚本将表类型定义为 STRING 类型。使用objByName来改变它:

update!(objByName(tableName), `v, 666);

如果您想了解更多关于动态表达式生成的信息,元编程将会有所帮助。


推荐阅读