Preamble
Foreign Keys is a way to ensure data integrity in your Oracle database. A Foreign Keys means that values in one table must also appear in another table.
The reference table is called the parent table, and the table with the foreign key is called the child table. The foreign key in the child table is usually referred to as the primary key in the parent table.
The foreign key can be defined either in the CREATE TABLE statement or in the ALTER TABLE statement.
Using CREATE TABLE
Syntax for creating an external key using the CREATE TABLE operator:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
…
CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
);
Example
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
);
CREATE TABLE products
( product_id numeric(10) not null,
supplier_id numeric(10) not null,
CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id)
);
In this example we created the primary key table of the supplier called supplier_pk. It consists of only one field – supplier_id. Then we created a foreign key named fk_supplier in the products table that refers to the supplier table based on the supplier_id field.
We could also create a foreign key with more than one field, as in the example below:
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id, supplier_name)
);
CREATE TABLE products
( product_id numeric(10) not null,
supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
CONSTRAINT fk_supplier_comp
FOREIGN KEY (supplier_id, supplier_name)
REFERENCES supplier(supplier_id, supplier_name)
);
In this example, our foreign key called fk_foreign_comp refers to the supplier table based on two fields – supplier_id and supplier_name.
Using ALTER TABLE
Syntax for creating an external key in ALTER TABLE operator:
ALTER TABLE products
ADD CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id) ;
In this example, we created a foreign key named fk_supplier that refers to the supplier table based on the supplier_id field.
Example
Another example of creating a foreign key with more than one field in the example below:
ALTER TABLE products
ADD CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id, supplier_name)
REFERENCES supplier(supplier_id, supplier_name) ;
Oracle SQL Tutorial: How to Create Foreign Keys
About Enteros
Enteros offers a patented database performance management SaaS platform. It proactively identifies root causes of complex business-impacting database scalability and performance issues across a growing number of clouds, RDBMS, NoSQL, and machine learning database platforms.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
Building Resilient BFSI Applications with Predictive AIOps and FinOps Intelligence
- 23 August 2026
- Database Performance Management
Introduction The Banking, Financial Services, and Insurance (BFSI) industry is undergoing a rapid digital transformation. Mobile banking, digital payments, online lending, insurance platforms, wealth management applications, and real-time financial services now depend on highly available and scalable IT infrastructure. Customers expect BFSI applications to be fast, secure, and available around the clock. Even a short … Continue reading “Building Resilient BFSI Applications with Predictive AIOps and FinOps Intelligence”
How AIOps and FinOps Enable Smarter Cloud Cost Optimization in Banking
Introduction Banking has entered an era where cloud technology is central to digital transformation. Mobile banking applications, digital payments, online lending, fraud detection, open banking APIs, wealth management platforms, and real-time financial services all depend on highly available and scalable IT infrastructure. Cloud adoption gives banks the flexibility to scale resources as demand changes, but … Continue reading “How AIOps and FinOps Enable Smarter Cloud Cost Optimization in Banking”
How to Improve Insurance Operations with Enteros Database Software, AI-Powered Analytics, and Database Observability
Introduction Insurance companies operate some of the most data-intensive business processes in the financial services industry. Policy administration, underwriting, claims, billing, customer portals, fraud detection, actuarial analysis, and regulatory reporting all depend on reliable data infrastructure. The insurance industry is also undergoing rapid digital transformation. Customers increasingly expect instant policy quotes, digital claims, mobile applications, … Continue reading “How to Improve Insurance Operations with Enteros Database Software, AI-Powered Analytics, and Database Observability”
How to Optimize Healthcare Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability
Introduction Healthcare organizations are becoming increasingly dependent on digital infrastructure. Electronic Health Records (EHRs), patient portals, telemedicine platforms, medical imaging, laboratory systems, pharmacy applications, revenue cycle systems, payer platforms, and AI-powered clinical applications all rely on databases to deliver information quickly and reliably. As healthcare organizations consolidate data and move more workloads to cloud and … Continue reading “How to Optimize Healthcare Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability”