Buenas tardes amigos llevo un rato buscando una sentencia similar a esta de SQL Server, pero para mySQL, como en el titulo del post me refiero a la clausula OUTPUT.
UPDATE tabla SET empage = 10 OUTPUT INSERTED.empid WHERE (empage < 10)
Gracias ;)
---
Conozco la salida para ficheros pero esa nop...
Supongo que has visto esto:
http://stackoverflow.com/questions/5817414/output-clause-in-mysql
Cita de: dimitrix en 30 Septiembre 2014, 20:23 PM
Conozco la salida para ficheros pero esa nop...
Supongo que has visto esto:
http://stackoverflow.com/questions/5817414/output-clause-in-mysql
Si, la he visto, es mas el copy-paste lo hice de esa misma pagina, pero seria genial tener esa clausula en mySQL con lo vago que soy me ahorraría 3 lineas de código jeje
No creo que exista un equivalente, te vas a encontrar con work arounds así. A lo mucho puedes sacar la ultima ID de una inserción con LAST_INSERT_ID()...
Si lo haces por ahorrar líneas, haz caso a MinusFour...
Si lo haces para reducir las peticiones al servidor (por ejemplo, xq tienes amazon o google y te cobran por petición), podrías meter dos queries en una misma petición, simplemente separándola con ;
Por otro lado ¿Existe la cláusula LAST INSERT ID? No digo function, digo cláusula, sería genial.
Cita de: dimitrix en 1 Octubre 2014, 00:19 AM
, podrías meter dos queries en una misma petición, simplemente separándola con ;
Podrias poner un ejemplo de como hacer en la misma query el
insert y el
select con
LAST_INSERT_ID ?
Cita de: dimitrix en 1 Octubre 2014, 00:19 AM
Si lo haces por ahorrar líneas, haz caso a MinusFour...
Si lo haces para reducir las peticiones al servidor (por ejemplo, xq tienes amazon o google y te cobran por petición), podrías meter dos queries en una misma petición, simplemente separándola con ;
Por otro lado ¿Existe la cláusula LAST INSERT ID? No digo function, digo cláusula, sería genial.
Que yo sepa no.
Cita de: peib0l en 1 Octubre 2014, 08:42 AM
Podrias poner un ejemplo de como hacer en la misma query el insert y el select con LAST_INSERT_ID ?
INSERT INTO tabla(empage) VALUES (10); SELECT empage FROM tabla WHERE empid = LAST_INSERT_ID();
Aunque esto no es la misma query... son dos queries separadas.
Te me has adelantado :-)
Jeje gracias por la ayuda MinusFour, después de leer la documentación oficial y algo mas de información sobre esta función encontré que te devuelve el ultimo ID insertado siempre y cuando el campo sea auto-incremental y ademas esté en la misma conexión.
INSERT INTO tabla(empage) VALUES (10); SELECT LAST_INSERT_ID();