diff --git a/engines/mysql.inc b/engines/mysql.inc
index 470c882..0510290 100644
--- a/engines/mysql.inc
+++ b/engines/mysql.inc
@@ -177,6 +177,26 @@ class SchemaDatabaseSchema_mysql extends DatabaseSchema_mysql {
       $tables[$r->table_name][$type][$r->index_name][] = $col;
     }
 
+    // Foreign keys
+    $sql = 'SELECT *
+            FROM information_schema.KEY_COLUMN_USAGE
+            WHERE table_schema = :database';
+    if (isset($table_name)) {
+      $sql .= ' AND table_name = :table';
+    }
+    $res = $this->connection->query($sql, $args);
+    foreach ($res as $r) {
+      if ($r->REFERENCED_TABLE_NAME) {
+        if (empty($tables[$r->TABLE_NAME]['foreign keys'][$r->CONSTRAINT_NAME])) {
+          $tables[$r->TABLE_NAME]['foreign keys'][$r->CONSTRAINT_NAME] = array(
+            'table' => $r->REFERENCED_TABLE_NAME,
+            'columns' => array(),
+          );
+        }
+        $tables[$r->TABLE_NAME]['foreign keys'][$r->CONSTRAINT_NAME]['columns'][$r->COLUMN_NAME] = $r->REFERENCED_COLUMN_NAME;
+      }
+    }
+
     // Now, for tables which we have unprefixed, index $tables by the unprefixed name
     foreach ($tables as $tablename => $table) {
       $newname = $tables[$tablename]['name'];
