

It may be one column or list of columns which points to the PRIMARY KEY of another table. Now, let's demonstrate how the ON DELETE SET NULL works. A FOREIGN KEY CONSTRAINT is used to ensure the referential integrity of the data in one table to match values in another table. In this example, we've created a foreign key (with set null on delete) called fk_departments that references the departments table based on the department_id field. INSERT INTO employees SELECT * FROM _employees_old Now, let's add a foreign key with ON DELETE SET NULL to the employees table: PRAGMA foreign_keys=off ĪLTER TABLE employees RENAME TO _employees_old INSERT INTO employees VALUES (10001, 'Anderson', 'Dave', 999) INSERT INTO employees VALUES (10000, 'Smith', 'John', 30) INSERT INTO departments VALUES (999, 'Sales') INSERT INTO departments VALUES (30, 'HR') Next, let's add some data to these tables:

INSERT INTO table1 SELECT * FROM _table1_old įirst, let's start by creating our 2 tables ( departments and employees): The syntax to add a foreign key with "set null on delete" to an existing table in SQLite is: PRAGMA foreign_keys=off ĪLTER TABLE table1 RENAME TO _table1_old Instead you will need to rename the table, create a new table with the foreign key, and then copy the data into the new table. You can not use the ALTER TABLE statement to add a foreign key with "set null on delete" in SQLite.
SQLITE FOREIGN KEY EXAMPLES HOW TO
How to Add a Foreign Key with "Set NULL on Delete" to an Existing Table Then we've created a foreign key called fk_departments on the employees table that references the departments table based on the department_id field.īecause of the ON DELETE SET NULL, when a record in the departments table is deleted, all corresponding records in the employees table will have the department_id set to NULL. In this example, we've created a primary key on the departments table that consists of only one field - the department_id field. ( employee_id INTEGER PRIMARY KEY AUTOINCREMENT, ( department_id INTEGER PRIMARY KEY AUTOINCREMENT, Let's look at an example of how to create a foreign key with "set null on delete" using the CREATE TABLE statement in SQLite. REFERENCES parent_table (column1, column2. The syntax for creating a foreign key with "set null on delete" using a CREATE TABLE statement in SQLite is: CREATE TABLE table_nameįOREIGN KEY (column1, column2. How to Create a Foreign Key with "Set Null on Delete" using a CREATE TABLE statement Syntax
