> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chaintable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Block 表的起始高度

> start height 决定了这张表从哪个高度开始有意义——这是个容易被忽略的隐性设置。

每张 Block Event / Block State 表都有一个 **start height**：低于这个高度的数据，平台会当成「不存在」处理，不是「还没写」。

<Warning>
  这个区别很重要。如果你尝试往低于 start height 的高度写入数据，或者查询低于它的高度，得到的不是"空结果"，而是会被平台拦下来——因为按定义那个高度对这张表来说压根不存在。
</Warning>

## 为什么需要这个设置

大多数业务表并不关心链的创世块——你可能只关心某个合约部署之后的数据。start height 让你明确声明"这张表的数据从哪里开始有意义"，平台以此为界，拒绝任何声称"更早"的写入或查询，避免出现语义不清的脏数据。

## 什么时候能改

start height 在建表时可以设置，**只有在表还是空的（还没写过任何数据）期间可以修改**。一旦表里有了数据，就不能再改了——改动起点会让已有数据的语义变得不确定。

## 实际影响的地方

* **写入**：往低于 start height 的高度写数据会被拒绝，不管走的是哪种写入路径。
* **回填**：`backfill(block_start=...)` 传的起点不能低于表的 start height，否则会直接报错，不会提交任何任务。
* **查询**：查低于 start height 的高度，平台按"不存在"处理，不是返回空。

<Tip>
  建表时就想清楚这张表真正需要的数据起点在哪，比事后调整成本低得多。
</Tip>
