06/04/2023 10:13
Bom dia, sua resposta tem uma solução sim!
Você terá que criar um loop para verificar no seu banco de dados onde a próxima "Primary Key" está vazia no caso com valor "0", veja um exemplo:
A variável 'IsNull' guardará o valor de cada chave primária de acordo com o Loop feito, assim que identificar que o valor da chave primária é 0, ela entrará na condicional "IF".
Quando for utilizar o mysql_format, coloque no valor da chave primeira o valor da variável do Loop "i" de acordo como está no código.
Espero ter ajudado
Você terá que criar um loop para verificar no seu banco de dados onde a próxima "Primary Key" está vazia no caso com valor "0", veja um exemplo:
Código:
#define MAX_HOUSES 250
new string[128], Cache:Query, IsNull;
for(new i = 1; i < MAX_HOUSES; i++)
{
mysql_format(BancoDados, string, sizeof(string), "SELECT * FROM Houses WHERE HouseID = '%i';", i); // Aqui selecionará cada Primary Key de acordo com o Loop.
Query = mysql_query(BancoDados, string, true); // Aqui usará o comando e salvará o Cache.
cache_get_value_int(0, "HouseID", IsNull); // Pegará o valor da Primary Key e guardará na variável IsNull.
cache_delete(Query); // Deleta o valor do Cache caso precise fazer uma nova verificação.
if(IsNull == 0) // Verifica se o valor da variável IsNull (Primary Key) é 0
{
mysql_format(BancoDados, string, sizeof(string), "INSERT INTO Houses values (%i, valores [...])'", i); // Insere na tabela 'Houses' na Primary Key encontrada vazia 'i'.
mysql_query(BancoDados, string, false);
return 1;
}
IsNull = 0;
}
A variável 'IsNull' guardará o valor de cada chave primária de acordo com o Loop feito, assim que identificar que o valor da chave primária é 0, ela entrará na condicional "IF".
Quando for utilizar o mysql_format, coloque no valor da chave primeira o valor da variável do Loop "i" de acordo como está no código.
Espero ter ajudado