Salve, in un db gestito da PostreSQL, ho un campo di tipo character varying e mi serve conoscere qual è il valore maggiore per poi incrementarlo.

$max = pg_fetch_row(pg_query("SELECT MAX(num_richiesta) FROM richiesta_auto"));
$maxnumrichiesta = $max[0];
$numero_richiesta = $maxnumrichiesta +1 ;

Il codice funziona, ma dipo aver inserito il decimo record, mi restituisce come record maggiore quello n.9 , compromettendomi il funzionamento del sistema.
Come è possibile ? Non ditemi che devo cambiare il tipo del campo, perché purtroppo per come è stato sviluppato il sistema in precedenza, mi serve di quel tipo altrimenti avrei parecchi malfunzionamenti.
Come posso risolvere, per favore ?