![]() ![]() It therefore, helped us maintain data integrity. So our foreign key successfully prevented bad data from entering the database. Result: Error: FOREIGN KEY constraint failed a TypeId value that doesn’t exist in the Types column). Let’s try to add a pet that uses a non-existent TypeID (i.e. sqlite> SELECT * FROM Pets īut now let’s try inserting data that violates the foreign key. The tables now contain the data shown above. ![]() Now that our tables have been created with the appropriate foreign key, we can add data. In this case it will reference the TypeId column of the Types table. The REFERENCES Types(TypeId) specifies the column that our foreign key will reference. The FOREIGN KEY(TypeId) part declares Pets.TypeId as the foreign key.Īlthough I didn’t qualify the column name with its table name, we know it’s Pets.TypeId (and not Types.TypeId) because we’re running this in the CREATE TABLE statement for Pets. The part that creates the foreign key is this: FOREIGN KEY(TypeId) REFERENCES Types(TypeId) CREATE TABLE Types(įOREIGN KEY(TypeId) REFERENCES Types(TypeId) We can use the following code to create these two tables. In this example we’ll make it the primary key. While parent keys are usually also the primary key for the table, this is not actually a requirement. In other words, we want to make Pets.TypeId the child key (with a foreign key constraint), and Types.TypeId the parent key (with a primary key constraint). Imagine we want two tables with the following data.Īnd we want the TypeId column of the Pets table to reference the TypeId column of the Types table. Now that we’ve enabled foreign key support, let’s go ahead and create a foreign key. Note that this setting is not required for creating foreign keys, but it is required for enforcing foreign keys. If you open another connection, you’ll need to run the same statement for that connection. This will enable foreign key enforcement for your database connection. To do this, run the following statement: PRAGMA foreign_keys = ON The first thing we should do is to enable foreign key support (if it hasn’t already been done).Īssuming your SQLite library hasn’t been compiled with SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGER defined, you will still need to enable foreign key support at runtime. This article provides an example of creating a foreign key when creating a table in SQLite. When you create a table in SQLite, you can also create a foreign key in order to establish a relationship with another table. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |