SA-MP Forums Archive
їEvitar tener que re-crear la base de datos? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: їEvitar tener que re-crear la base de datos? (/showthread.php?tid=590452)



їEvitar tener que re-crear la base de datos? - Ghost112397 - 29.09.2015

Buenas, quisiera saber si puedo evitar tener que re-crear la base de datos del servidor cada vez que agrego una nueva fila, por ejemplo: Si yo agrego `Dinero` en la tabla, tengo que borrar la tabla y que el servidor la vuelva a crear.
їExiste de algъn modo evitar que eso pase al agregar una nueva fila?


Re: їEvitar tener que re-crear la base de datos? - Jastak - 29.09.2015

mmm, no entiendo que tratas de decir, que usas mysql o SqlLite??


Re: їEvitar tener que re-crear la base de datos? - H@hn - 29.09.2015

їAsi?

PHP код:
ALTER TABLE tablaoriginal ADD fila_nueva VARCHAR(20NULL



Respuesta: їEvitar tener que re-crear la base de datos? - Ghost112397 - 29.09.2015

Uso SQLite, el problema es que cuando yo agrego algo mбs a la tabla, tengo que borrarla y que el servidor la vuelva a crear para que se guarden los datos de esa fila.

PHP код:
db_free_result(db_query(servidor"CREATE TABLE IF NOT EXISTS `jugadores` \
        (`ID` INTEGER PRIMARY KEY AUTOINCREMENT, \
        `Nombre` VARCHAR(24) NOT NULL, \
        `Password` VARCHAR(24) NOT NULL, \
        `Admin` INTEGER NOT NULL, \
        `Score` INTEGER NOT NULL, \
        `Matados` INTEGER NOT NULL, \
        `Muertes` INTEGER NOT NULL, \
        `Baneado` INTEGER NOT NULL, \
        `Dinero` INTEGER NOT NULL)"
)); // Al agregar la nueva fila de dinero, tengo que recrear la tabla para que se pueda guardar datos en esa fila. 
їPuedo evitar eso?


Re: їEvitar tener que re-crear la base de datos? - Jastak - 29.09.2015

como dice H@hn, creo que la forma es hacer como una funciуn que solo le ejecutes una vez para crear las tablas.. "ALTER TABLE `jugadores` ADD `AA` INT NOT NULL ;"

un ejemplo creo que serнa esto:
Код:
stock Consulta_NuevasFilas(nombre_tabla[], nombre[], tipo, longitud=120)
{
new s[70];
if(tipo == 0) // Intero
{
format(s, sizeof(s), "ALTER TABLE `%s` ADD `%s` INT NOT NULL ;", nombre_tabla, nombre);
}
else // Varchar
{
format(s, sizeof(s), "ALTER TABLE `%s` ADD `%s` VARCHAR(%i) NOT NULL ;", nombre_tabla, nombre, logintud);
}
db_query(servidor, s);
return 1;
}

#define CREATE_NEW_ROWS

public OnGameModeInit()
{
#if defined CREATE_NEW_ROWS
Consulta_NuevasFilas("jugadores", "Dinero", 0);
Consulta_NuevasFilas("jugadores", "Contra2", 1, 140);
#endif
return 1;
}



Respuesta: Re: їEvitar tener que re-crear la base de datos? - Ghost112397 - 29.09.2015

Quote:
Originally Posted by Jastak
Посмотреть сообщение
como dice H@hn, creo que la forma es hacer como una funciуn que solo le ejecutes una vez para crear las tablas.. "ALTER TABLE `jugadores` ADD `AA` INT NOT NULL ;"
Eso irнa en OnGamemodeInit, debajo del CREATE TABLE IF NOT EXISTS?


Re: Respuesta: Re: їEvitar tener que re-crear la base de datos? - Jastak - 29.09.2015

Quote:
Originally Posted by Ghost112397
Посмотреть сообщение
Eso irнa en OnGamemodeInit, debajo del CREATE TABLE IF NOT EXISTS?
Vuelve a leer el post.


Respuesta: Re: Respuesta: Re: їEvitar tener que re-crear la base de datos? - Ghost112397 - 29.09.2015

Quote:
Originally Posted by Jastak
Посмотреть сообщение
Vuelve a leer el post.
Muchнsimas gracias!!!

EDIT: Acabo de comprobar y la fila no se crea :/


Respuesta: їEvitar tener que re-crear la base de datos? - Fagrinht - 29.09.2015

їMe podrнas terminar de ayudar en el post mнo con lo que te preguntй? disculpe por desvirtuar tema, necesito terminar eso.


Respuesta: їEvitar tener que re-crear la base de datos? - Ghost112397 - 29.09.2015

їY si directamente agrego las nuevas filas desde el DB Browser?