Insert Retrazado en MySQL

Iniciado por Skeletron, 16 Enero 2011, 00:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Hola gente.
Se puede hacer algo así?:

Insertar dentro de 100 segundos X X X..
Hacer un INSERT que se realice dentro de X cantidad de segundos.
Se puede?

Spider-Net

Se podría hacer con AJAX. Con la función SetTimeOut() retrasas los 100 segundos o lo que quieras y luego llamas a la función AJAX que a su vez llamará al archivo PHP que ejecutará el INSERT.

Skeletron

Yo no quiero ser un HDP, pero: Porque la gente no responde lo que se le pregunta en este foro?
Si no tenes respuesta, no respondas, y listo.

Y si el usuario cierra la web?
Y si la insercion la tengo que hacer dentro de 5 dias?
Lo de Ajax descartalo.

Hay algun metodo PROPIO DE SQL que haya Inserciones de ese tipo?

Spider-Net

#3
Perdona que te diga compañero, pero tu pregunta es si se puede hacer un INSERT con un retraso de x segundos y mi respuesta es: SÍ, con AJAX (respuesta totalmente válida)

Que no sea lo que tú quieres no es mi problema, pero mi respuesta responde a tu pregunta así que no quiero ser HDP pero baja los humos compi ;). Si quieres que te den respuestas para algo más concreto haz preguntas más concretas, tú NO has dicho en tu primer post que quieras hacer la consulta dentro de 5 días ni que la harías cuando el usuario cerrase la web. Has dicho que si se podía hacer con un retraso de x segundos y eso es posible con AJAX.

NO hay métodos SQL que ejecuten ninguna acción  con retraso a no ser que tengas un servidor dedicado con crontab o uses ORACLE para ejecutar sentencias programadas, cosa que dudo porque por tu respuesta es obvia que eres un niñato ;)

Si quieres respuestas adecuadas haz preguntas adecuadas.

PD: Revisa tu ortografía, se escribe "retraSado" no "retraZado".

[youtube=425,350]http://www.youtube.com/watch?v=tMGNjMscw44[/youtube]

#!drvy

Hola,

Ey No hace falta declararse la guerra por un mal entendido xD.

Por otra parte creo que en mysql no es posible (mientras que en sql si con la funcion waitfor xD).
Tu alternativa es usar Cron si tu servidor lo permite.




Saludos

Skeletron

#5
Cita de: drvy | BSM en 17 Enero 2011, 03:15 AM
Hola,

Ey No hace falta declararse la guerra por un mal entendido xD.

Por otra parte creo que en mysql no es posible (mientras que en sql si con la funcion waitfor xD).
Tu alternativa es usar Cron si tu servidor lo permite.




Saludos
Muchas gracias por el dato.

SPIDER:
Yo dije: INSERT CON RETRAZO.
No dije: RETRAZO DE INSERT

no comprares un Do While, con un While.
Noto tu inferioridad a la hora de sacarme mis errores, intentando tapar los tuyos

Spider-Net

#6
Te vuelvo a decir que se dice "retraSo" y no "retraZo". Practica un poco de ortografía antes de intentar corregirme en algo.

Y segundo es lo mismo un INSERT con retraso que retrasar un INSERT. Revisa un poco también la gramática porque es obvio que la tienes pendiente ;)

Retrasar un INSERT y ejecutar un INSERT con retraso de x segundos es lo mismo (esto no es comparable a un while o un do while) y mi respuesta sigue siendo completamente válida. Así que una vez más te voy a recomendar que practiques gramática y ortografía, además te diré que aprendas a realizar tus preguntas y así obtendrás respuestas más concretas y finalmente permíteme reirme un poco con esta frase "Noto tu inferioridad a la hora de sacarme mis errores, intentando tapar los tuyos" XDDDDDDD. ¿Mi inferioridad?, perdona yo no soy el que más sabe de este foro ni mucho menos pero de verdad te crees superior? mira chaval, por tu foto y tus respuestas es obvio que eres un niñato y si además ni siquiera sabes que se puede programar una acción con CRONTAB y que MySQL no permite eso es obvio que te queda mucho por aprender, así que vete a estudiar y dentro de 8 ó 9 años hablamos (si es que has aprendido a escribir para entonces).

Skeletron

Cita de: Spider-Net en 17 Enero 2011, 23:30 PM
Retrasar un INSERT y ejecutar un INSERT con retraso de x segundos es lo mismo

Claro, pero ninguna de las 2 opciones he pedido yo. Yo pedí: Insert retraZado

Seguis equivocado, y lo vas a estar toda tu vida. en todas tus acciones. :)

el-brujo

Skeletron no seas tan exagerado, Spider-Net no te contestó "exactamente" a la pregunta, pero al menos te propuso una alternativa o una idea. Si esa alternativa no era la que estabas buscando, respondes educadamente que gracias por la idea, pero no es lo que buscas.

Hay muchas maneras de decir las cosas, entiendo que la solución de Spider-Net no era la que te interesaba, pero tu respuesta está fuera de lugar.

Si siguen con la discusión se eliminarán sus futuras respuestas. Gracias.

madpitbull_99

Citar
Insertar dentro de 100 segundos X X X..
Hacer un INSERT que se realice dentro de X cantidad de segundos.

Con PHP se podría hacer usando un Timer con microtime() y comprobando el tiempo que ha pasado.

Aquí tienes un ejemplo de como usar microtime() de la pagina oficial de php.net:
Código (perl) [Seleccionar]

<?php
/**
 * Función sencilla para repetir el comportamiento de PHP 5
 */
function microtime_float()
{
 list(
$usec$sec) = explode(" "microtime());
 return ((float)
$usec + (float)$sec);
}

$time_start microtime_float();

// Dormir por un momento
usleep(100);

$time_end microtime_float();
$time $time_end $time_start;

echo 
"No se hizo nada en $time segundos\n";
?>


MySQL tiene una función llamada INSERT DELAYED:
Citar
The DELAYED option for the INSERT statement is a MySQL extension to standard SQL that is very useful if you have clients that cannot or need not wait for the INSERT to complete. This is a common situation when you use MySQL for logging and you also periodically run SELECT and UPDATE statements that take a long time to complete.
When a client uses INSERT DELAYED, it gets an okay from the server at once, and the row is queued to be inserted when the table is not in use by any other thread.
Another major benefit of using INSERT DELAYED is that inserts from many clients are bundled together and written in one block. This is much faster than performing many separate inserts.
Note that INSERT DELAYED is slower than a normal INSERT if the table is not otherwise in use. There is also the additional overhead for the server to handle a separate thread for each table for which there are delayed rows. This means that you should use INSERT DELAYED only when you are really sure that you need it.

Documentacion Oficial MySQL

Fíjate si te sirve para lo que tu quieres.

PD: Se escribe retrasado, retrazado, viene del verbo trazar.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red