Does mysql support foreign keys?

The answer to this is two-fold.

Yes. MySQL _DOES_ allow the creation of foreign key constraints
(see
http://www.mysql.com and search documentation for the syntax and other information).

However, FKs are only ENFORCED with InnoDB (the default table-type is MyISAM) tables at present. There is a task added to the TODO list for a future version (5.0 or 5.1, I believe) to add full integrity checking on FKs to all table types.

If you require integrity checking via FKs you MUST use InnoDB format tables. MySQL also requires that you manually create an index on columns which are to be referenced in FKs (both the reference column and the referring column) for speed of queries/joins.

  • 6 Users Found This Useful
Was this answer helpful?

Related Articles

I'm new to MySQL, where should I start?

The best source of MySQL information is the excellent on-line manual : ...

What does this error message means - Warning: Supplied argument is not a valid MySQL result resource and how do you solve it?

I think you got this message from PHP. You get this message when you are trying to access...

How do I delete a table from a database?

Use this SQL command : "DROP TABLE yourtablename"

How can I select random rows from a table?

SELECT * FROM table_name ORDER BY RAND(); Found at...

Select statement to join tables?

For a simple join: SELECT a.*, b.*FROM tblAlpha a, tblBeta bWHERE (a.keyfield = b.foreignkey);...