el problema no esta en php...
el mensaje de error que dices no es un error de sintaxis de php, ni nada que relacione a PHP... pues, la sintaxis es correcta....
dicho mensaje lo arroja el
mysql_error() y bueno, por obvias razones si es un problema de MySQL....
cuando dices "
lo ejecuto en mysql directamente" ¿a que te refieres?
¿estas usando la linea de comandos? ¿o te refieres a
phpMyAdmin?