I think the main reason is for data integrity. If you have a relationship between two tables invoice and invoice_item
. You won’t be able to add an invoice item that does not related to an invoice. This is what you want!
It’s called referential integrity. It can get pretty messy in your database if you don’t have foreign keys because you could delete and corrupt your data easily.
e.g. You could delete invoice and not it’s corresponding invoice items. This is considered bad.
I think this gives you something to go on.
Related Posts:
- MySQL Error: : ‘Access denied for user ‘root’@’localhost’
- What is the difference between “INNER JOIN” and “OUTER JOIN”?
- What is the difference between “INNER JOIN” and “OUTER JOIN”?
- ORA-00904: invalid identifier
- Self Join to get employee manager name
- MySQL Error: : ‘Access denied for user ‘root’@’localhost’
- Case statement in MySQL
- How do you trouble shoot a “Data type mismatch in criteria expression” error in MS Access 2010?
- What is the difference between JOIN and UNION?
- Error Code: 2013. Lost connection to MySQL server during query
- how to drop partition without dropping data in MySQL?
- How to SUM two fields within an SQL query
- The ALTER TABLE statement conflicted with the FOREIGN KEY constraint
- What is it exactly a BLOB in a DBMS context
- The backend version is not supported to design database diagrams or tables
- Simulate CREATE DATABASE IF NOT EXISTS for PostgreSQL?
- “You tried to execute a query that does not include the specified aggregate function”
- Postgres Error: More than one row returned by a subquery used as an expression
- How do I reset a sequence in Oracle?
- MySQL equivalent of DECODE function in Oracle
- what is the difference between triggers, assertions and checks (in database)
- Solutions for INSERT OR UPDATE on SQL Server
- How do I count unique items in field in Access query?
- “select * into table” Will it work for inserting data into existing table
- MySQL Error: : ‘Access denied for user ‘root’@’localhost’
- What’s the best way to search for a UPC code in a Database?
- What is an MDF file? [closed]
- What is the difference between UNION and UNION ALL?
- Selecting COUNT(*) with DISTINCT
- Case in Select Statement
- What is a stored procedure?
- SQL WITH clause example [duplicate]
- Unknown column in ‘field list’ error on MySQL Update query
- Unknown column in ‘field list’ error on MySQL Update query
- SQL Inner-join with 3 tables?
- The wait operation timed out. ASP
- What is SELF JOIN and when would you use it? [duplicate]
- The wait operation timed out. ASP
- Conversion failed when converting date and/or time from character string while inserting datetime
- How do I UPDATE from a SELECT in SQL Server?
- how to fix oracle ORA-01722 invalid number error
- SQL query to select dates between two dates
- MySQL – Operand should contain 1 column(s)
- SQL SELECT WHERE field contains words
- Conversion failed when converting date and/or time from character string while inserting datetime
- When should I use CROSS APPLY over INNER JOIN?
- MySQL “CREATE TABLE IF NOT EXISTS” -> Error 1050
- Insert Data Into Temp Table with Query
- MySQL create table if not exists and insert record only if table was created
- error, string or binary data would be truncated when trying to insert
- How to create Temp table with SELECT * INTO tempTable FROM CTE Query
- NOT IN vs NOT EXISTS
- SQL SELECT WHERE field contains words
- Online SQL Query Syntax Checker
- How can I do an UPDATE statement with JOIN in SQL Server?
- Must declare the scalar variable
- ORA-00979 not a group by expression
- ORA-00907: missing right parenthesis
- How do I use properly CASE..WHEN in MySQL
- Must declare the scalar variable
- What is “Advanced” SQL?
- Rename column SQL Server 2008
- INSERT statement conflicted with the FOREIGN KEY constraint – SQL Server
- Using group by on multiple columns
- Efficiently convert rows to columns in sql server
- How can I do a FULL OUTER JOIN in MySQL?
- Nested select statement in SQL Server
- INSERT statement conflicted with the FOREIGN KEY constraint – SQL Server
- Using group by on multiple columns
- SQL SELECT WHERE field contains words
- MySQL query String contains
- How do I escape a single quote in SQL Server?
- What’s the difference between VARCHAR and CHAR?
- How to update multiple columns in single update statement in DB2
- T-SQL split string based on delimiter
- How to declare a variable in MySQL?
- How to implement one-to-one, one-to-many and many-to-many relationships while designing tables?
- Finding duplicate values in a SQL table
- ORA-01843 not a valid month- Comparing Dates
- MySQL Cannot Add Foreign Key Constraint
- How do I restore a dump file from mysqldump?
- Drop a temporary table if it exists
- How do I escape a single quote in SQL Server?
- ORA-00918: column ambiguously defined in SELECT *
- Teradata: how to convert varchar value (format ‘dd.mm.yyyy’) to date (format ‘yyyy-mm-dd’ )?
- How Stuff and ‘For Xml Path’ work in SQL Server?
- IDENTITY_INSERT is set to OFF – How to turn it ON?
- Oracle error : ORA-00905: Missing keyword
- How to split the name string in mysql?
- How to reset AUTO_INCREMENT in MySQL
- How do I import an SQL file using the command line in MySQL?
- Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
- mysql Foreign key constraint is incorrectly formed error
- How do I limit the number of rows returned by an Oracle query after ordering?
- Sql Server equivalent of a COUNTIF aggregate function
- Oracle SELECT TOP 10 records
- MySQL: Invalid use of group function
- must appear in the GROUP BY clause or be used in an aggregate function
- Column name or number of supplied values does not match table definition
- Inserting data into a temporary table