---
source_url: https://docs.dolphindb.cn/zh/error_codes/S02054.html
fetched_at: 2026-05-19T09:10:13Z
category: error_codes
title: S02054
sha1: f6473abe0edd28e24aca19bce7332a61080357ff
---

# S02054

## 错误代码

S02054

## 报错信息

Can't modify read only table. RefId: S02054

## 错误原因

当删除、更新或插入只读表的数据时，会出现该报错，见下例：

```dolphindb
def createMyTable(n) {
    intv = take(1..10, n)
    symbol = take(`a`b`c, n)
    id = rand(100, n)
    strv = take("abs" + string(1..10), n)
    doublev = rand(10.0, n)
    return table(intv, strv, doublev, id, symbol)
}
// 建表
n = 100
t = createMyTable(n)

// 共享表, 设置为只读
share(t, `shareReadOnlyTable, readonly=true)
delete from shareReadOnlyTable where id = 1 // 报错

// 共享表，可写
share(t, `shareTable, readonly=false)
delete from shareTable where id = 1 // 正常

// 拷贝
share(t, `shareReadOnlyTable, readonly=true)
copyT = select * from shareReadOnlyTable;
delete from copyT where id = 1 // 正常
```

## 解决办法

1. 在创建表的时候设为可写，即将 readonly 设置为 false。
2. 如果不想修改原表的可读属性且表数据较少，可以通过 select 语句拷贝一份表数据，再对拷贝后的内存表进行操作。
