Updating foreign key
Attempting to do so does not return an error; it simply has no effect.
Usually, the parent key of a foreign key constraint is the primary key of the parent table.
(Note, however, that future releases of SQLite might change so that foreign key constraints enabled by default.
Careful developers will not make any assumptions about whether or not foreign keys are enabled by default but will instead enable or disable them as necessary.) The application can also use a PRAGMA foreign_keys statement to determine if foreign keys are currently enabled.
If they are not the primary key, then the parent key columns must be collectively subject to a UNIQUE constraint or have a UNIQUE index.
If the parent key columns have a UNIQUE index, then that index must use the collation sequences that are specified in the CREATE TABLE statement for the parent table.
Because the error occurs during a schema change, this is a DDL error.
Foreign key DDL errors are reported regardless of whether or not foreign key constraints are enabled when the table is created.
So, in other words, misconfigured foreign key constraints that require looking at both the child and parent are DML errors.
If these queries cannot use an index, they are forced to do a linear scan of the entire child table.
In a non-trivial database, this may be prohibitively expensive.
The PRAGMA foreign_keys command is a no-op in this configuration.
If OMIT_FOREIGN_KEY is defined, then foreign key definitions cannot even be parsed (attempting to specify a foreign key definition is a syntax error).
Search for updating foreign key:
The English language error message for foreign key DML errors is usually "foreign key mismatch" but can also be "no such table" if the parent table does not exist.