When Rekall displays table data in a form (or when displaying table data directly, which is effectively a form), then in order to update the table, Rekall must be able to uniquely identify each row in the table. This is because Rekall must issue an SQL query of the form update tablename set .... where colname = uniquekey where colname is the name of a column whose contents are unique (ie., is different in every row of the table) and uniquekey is the unique key value for the row to be updated.
In addition, for Rekall to be able to insert a new row into the table, it must be able to ascertain the unique key value for the row which is inserted.
For some databases, this is always possible. For instance, in PostgreSQL every row has associated with it a unique indeitifier called the oid, which can be retrieved along with the row data; after a new row is inserted, the oid of that row can be ascertained. Similarly, Oracle has a rownum.
In other cases, however, this is not always possible. MySQL can mark a column as auto-increment, in which case an incrementing value is automatically generated for each row inserted; this value can be ascertained immediately after the insertion. However, if there is no auto-increment column, this is not possible.