多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.4 KiB

title description tags keywords
Primary key This article explains what a primary key is and how it is used in NocoDB. [Fields Primary Key] [NocoDB primary key primary key primary key in NocoDB primary key in database]

Primary Key

A primary key is a special database table field designated to uniquely identify each table record.

Use of Primary Key

As it uniquely identifies an individual record of a table, it is used internally by NocoDB for all operations associated with a record

Primary Key in NocoDB

Primary Key that gets defined / used in NocoDB depends on how underlying table was created. Summary is captured below

  1. From UI, Create new table / Import from Excel / Import from CSV
    1. An ID [datatype: Integer] system field created by default during table creation is used as primary key
    2. Additional system fields created-at, updated-at are inserted by default
  2. Connect to existing external database
    1. Existing primary key field defined for a table is retained as is; NocoDB doesn't insert a new ID field
    2. Additional system fields created-at, updated-at are not inserted by default
  3. Import from Airtable
    1. Airtable record ID is marked as primary key for imported records, and is mapped to field ncRecordId [datatype: varchar]
    2. If a new record is inserted after migration & if ncRecordId field was omitted during record insertion - auto generated string will be inserted by NocoDB
    3. Computed hash value for the entire record is stored in system field ncRecordHash
    4. Additional system fields created-at, updated-at are not inserted by default
  4. Create new table using SDK / API
    1. No default primary key field is introduced by NocoDB. It has to be explicitly specified during table creation (using attribute pk: true)

:::info What if Primary Key was missing?

It is possible to have a table without any primary key.

  • External database table can be created without primary key configuration.

  • New table can be created using SDK / API without primary key

    In such scenario's, new records can be created in NocoDB for this table, but records can't be updated or deleted as there is no way for NocoDB to uniquely identify these records :::

:::info Can I change the Primary Key to another field within tables?

  • You can't update Primary Key from NocoDB UI. You can reconfigure it at database level directly & trigger meta sync explicitly. :::