You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The sql contains mysql specific code. And for the mysql 5.0.xxx the sql statement has syntax error.
in /Doctrine/DBAL/Platforms/MySqlPlatform.php:
public function getListTableForeignKeysSQL($table, $database = null)
{
$sql = "SELECT DISTINCT k.CONSTRAINT*NAME, k.COLUMN_NAME, k.REFERENCED_TABLE*NAME, ".
"k.REFERENCED*COLUMN_NAME /_!50116 , c.update_rule, c.delete_rule / ".
"FROM information_schema.key_column_usage k /!50116 ".
"INNER JOIN information_schema.referential_constraints c ON ".
" c.constraint_name = k.constraint_name AND ".
" c.table_name = '$table' */ WHERE k.table_name = '$table'";
if ($database) {
$sql .= " AND k.table*schema = '$database' AND c.constraint*schema = '$database'";
}
$sql .= " AND `REFERENCED*COLUMN*NAME` is not NULL";
return $sql;
}
For the mysql lower as 5.1.16 the SQL could be as the following:
SELECT DISTINCT k.CONSTRAINT*NAME, k.COLUMN_NAME, k.REFERENCED_TABLE_NAME, k.REFERENCED_COLUMN_NAME FROM information_schema.key_column_usage k WHERE k.table_name = 'some_table' AND k.table_schema = 'some database' AND c.constraint_schema = 'some database' AND REFERENCED_COLUMN*NAME is not NULL
In this statement there is no reference of c
The text was updated successfully, but these errors were encountered:
Pity that because of this the Doctrine schema-tool update action reports incorrect change list.
It tries to drop/add foreign keys because "ON DELETE CASCADE" option isn't read from the database at all.
Jira issue originally created by user tiw:
The sql contains mysql specific code. And for the mysql 5.0.xxx the sql statement has syntax error.
in /Doctrine/DBAL/Platforms/MySqlPlatform.php:
public function getListTableForeignKeysSQL($table, $database = null)
{
$sql = "SELECT DISTINCT k.
CONSTRAINT*NAME
, k.COLUMN_NAME
, k.REFERENCED_TABLE*NAME
, "."k.
REFERENCED*COLUMN_NAME
/_!50116 , c.update_rule, c.delete_rule / "."FROM information_schema.key_column_usage k /!50116 ".
"INNER JOIN information_schema.referential_constraints c ON ".
" c.constraint_name = k.constraint_name AND ".
" c.table_name = '$table' */ WHERE k.table_name = '$table'";
}
For the mysql lower as 5.1.16 the SQL could be as the following:
SELECT DISTINCT k.
CONSTRAINT*NAME
, k.COLUMN_NAME
, k.REFERENCED_TABLE_NAME
, k.REFERENCED_COLUMN_NAME
FROM information_schema.key_column_usage k WHERE k.table_name = 'some_table' AND k.table_schema = 'some database' AND c.constraint_schema = 'some database' ANDREFERENCED_COLUMN*NAME
is not NULLIn this statement there is no reference of c
The text was updated successfully, but these errors were encountered: