SQLite checked the foreign key constraint, rejected the change, and issued the following error message: Abort due to constraint violation ( FOREIGN KEY constraint failed) Code language: CSS ( css ) SQLite foreign key constraint actions VALUES( 'ABC Inc.', 4) Code language: SQL (Structured Query Language) ( sql ) INSERT INTO suppliers (supplier_name, group_id) Third, attempt to insert a new supplier into the suppliers table with the supplier group that does not exist in the supplier_groups table. VALUES ( 'HP', 2) Code language: SQL (Structured Query Language) ( sql ) Second, insert a new supplier into the suppliers table with the supplier group that exists in the supplier_groups table. ( 'One-Time') Code language: SQL (Structured Query Language) ( sql ) SQLite foreign key constraint exampleįirst, insert three rows into the supplier_groups table. Generally, the child key references to the primary key of the parent table. The group_id column in the suppliers table is called the child key. Typically, the parent key is the primary key of the parent table. The group_id column in the supplier_groups table is called the parent key, which is a column or a set of columns in the parent table that the foreign key constraint references. The suppliers table is known as a child table, which is the table to which the foreign key constraint applies. The supplier_groups table is called a parent table, which is the table that a foreign key references. To add the foreign key constraint to the suppliers table, you change the definition of the CREATE TABLE statement above as follows: DROP TABLE suppliers Ĭode language: SQL (Structured Query Language) ( sql ) To enforce the relationship between rows in the suppliers and supplier_groups table, you use the foreign key constraints. This may leave orphaned rows in the suppliers table. In addition, you may remove a row in the supplier_groups table without deleting or updating the corresponding rows in the suppliers table. In other words, for each row in the suppliers table, there is a corresponding row in the supplier_groups table.Ĭurrently, there is no way to prevent you from adding a row to the suppliers table without a corresponding row in the supplier_groups table. The relationship between supplier_groups and suppliers tables is one-to-many. And each supplier group may have zero or many suppliers. ) Code language: SQL (Structured Query Language) ( sql )Īssuming that each supplier belongs to one and only one supplier group. Let’s start with two tables: suppliers and supplier_groups : CREATE TABLE suppliers ( To enable foreign key constraint: PRAGMA foreign_keys = ON Code language: SQL (Structured Query Language) ( sql ) Introduction to the SQLite foreign key constraints To disable foreign key constraint: PRAGMA foreign_keys = OFF Code language: SQL (Structured Query Language) ( sql ) If the SQLite library is compiled with foreign key constraint support, the application can use the PRAGMA foreign_keys command to enable or disable foreign key constraints at runtime. If the command returns nothing, it means that your SQLite version doesn’t support foreign key constraints. The command returns an integer value: 1: enable, 0: disabled. PRAGMA foreign_keys Code language: SQL (Structured Query Language) ( sql ) To check whether your current version of SQLite supports foreign key constraints or not, you use the following command. The SQLite library must also be compiled with neither SQLITE_OMIT_FOREIGN_KEY nor SQLITE_OMIT_TRIGGER. SQLite has supported foreign key constraint since version 3.6.19. Summary: in this tutorial, you will learn how to use the SQLite foreign key constraint to enforce the relationships between related tables.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |