Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas

miércoles, 23 de noviembre de 2022

Crear una tabla "On-the fly" en un Query MySQL/MariaDB

 Holaa... antes lo hice en PostgreSQL (https://inkahack.blogspot.com/2012/12/crar-una-tabla-on-fly-en-un-query.html), pero ahora tambien vi que se puede en MySQL > 8.0.19 y MariaDB > 10.3

SELECT 1 AS x ,2 AS y
UNION 
VALUES (3,4),(5,6);


Bytes




miércoles, 2 de noviembre de 2016

Activar/Instalar sys_exec en MariaDB 10 Centos 6 64bits

0. Asegurate de tener instalado los paquetes MariaDB-devel.x86_64, MariaDB-shared.x86_64 y gcc.x86_64.

1. Descargar lib_mysqludf_sys-master.zip de https://github.com/mysqludf/lib_mysqludf_sys#readme, puedes llegar ahí también por la pagina de UDFs http://www.mysqludf.org/.

2. Descomprimir en algún directorio, para el ejemplo sera /root y cambiar los permisos: chmod -R 777 lib_mysqludf_sys-master

3. En la carpeta descomprimida editar el archivo Makefile (yo uso nano, así que seria nano Makefile), archivo debe quedar como sigue:

LIBDIR=/usr/lib64

install:
        gcc -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so -fPIC

4. Ejecutar ./install.sh , les dará un error al final ignorenlo.

5. Copiar el nuevo archivo a la carpeta de plugins:

cp  /usr/lib64/lib_mysqludf_sys.so /usr/lib64/mysql/plugin/

6. Volver a correr ./install.sh, y ahora si no mostrara ningun error.

7. Entra a la consola de mysql y prueba que funciona con:

SELECT sys_exec ('touch /tmp/test.txt ')

Vas al directorio /tmp y debe estar allí el archivo test.txt

That's all a jugar cn el sys_exec en mariadb. :)



lunes, 11 de enero de 2016

Cerrar todas las conexiones de un usuario en MySQL/MariaDB

Basado en http://www.itmovil.com/2012/04/25/cerrar-todas-las-conexiones-de-un-usuario-en-mysql/

Abrir conexión por el cliente de consola de MySQL/MariaDB:

mysql -u root -p

luego creamos dinamicamente todas las sentencias para todos los procesos activos de un determinado usuario y lo guardamos en un archivo del disco duro, para ello ejecutamos :

select concat('KILL ',id,';') from information_schema.processlist where user='usuariodb' into outfile '/tmp/a.txt';

Ahora lo único que se debe hacer es ejecutar el archivo de texto que contiene las instrucciones, para ello ejecutamos

source /tmp/a.txt;

That's all..


jueves, 5 de junio de 2014

Eliminar registros duplicados en una tabla mysql

La forma mas facil es crear un indice unico usando el indicador IGNORE:

ALTER IGNORE TABLE `mitabla`
ADD UNIQUE `mitabla_idx1` (`campo1`, `campo2`);

Lo probe en tablas tipo myisam e innodb en MySQL 5.1

Me ayudo mucho este link :
http://blog.openalfa.com/como-eliminar-registros-duplicados-en-una-tabla-mysql

Bye


lunes, 5 de abril de 2010

Usar un alias de campo en otro campo

Esto se podia hacer en MSAccess muy sencillo, por ejemplo:

select (punit*cantidad) as total, total/1.19 as vventa from factura

el alias total es usado para general el alias vventa.

En MySQL se resuelve usando variables:

SELECT @total:=(punit*cantidad) as total,
@total/1.19 AS vventa FROM factura

That's all