## Index and Limit
`limit` cannot be used in conjunction with `index`.
Initializing a `Table` with an `index` tells Perspective to treat a column as the primary key, allowing in-place updates of rows. Only a single column (of any type) can be used as an `index`. Indexed `Table` instances allow: - In-place _updates_ whenever a new row shares an `index` values with an existing row - _Partial updates_ when a data batch omits some column. - _Removes_ to delete a row by `index`. To create an indexed `Table`, provide the `index` property with a string column name to be used as an index:
JavaScript: ```javascript const indexed_table = await perspective.table(data, { index: "a" }); ```
Python ```python indexed_table = perspective.Table(data, index="a"); ```
Initializing a `Table` with a `limit` sets the total number of rows the `Table` is allowed to have. When the `Table` is updated, and the resulting size of the `Table` would exceed its `limit`, rows that exceed `limit` overwrite the oldest rows in the `Table`. To create a `Table` with a `limit`, provide the `limit` property with an integer indicating the maximum rows:
JavaScript: ```javascript const limit_table = await perspective.table(data, { limit: 1000 }); ```
Python: ```python limit_table = perspective.Table(data, limit=1000); ```