Bienvenidos sean a este post, hoy veremos como crear una tabla con este motor.
Este motor soporta mucho tipos de tablas, las cuales nos permiten utilizar distintos origenes de datos, los que nos permiten comunicarnos con los DBMS remotos son MYSQL y ODBC, el primero nos permite conectar tanto a servidores mysql como mariadb mediante su protocolo nativo, el segundo trabaja para cualquier tipo de DBMS que soporte el estandar de ODBC, pero en este post nos enfocaremos mas en el MYSQL.
Nota: DBMS significa Sistema de gestion de bases de datos por sus siglas en ingles y ODBC significa Conectividad abierta de bases de datos por sus siglas en ingles.
La sintaxis que usamos para crear una tabla en CONNECT es muy similar a la vista en FEDERATEDX en este post pero no podemos definir indices, veamos un ejemplo:
CREATE TABLE test.user (
id INTEGER UNSIGNED NOT NULL,
username VARCHAR(50),
password VARCHAR(50)
)
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION = 'mysql://user1:pwd@remote_server/db1/user';
Como pueden observar aqui tambien necesitamos de la opcion CONNECTION al momento de crear la tabla pero a diferencia de cuando comentamos FEDERATEDX no se puede usar a COMMENT para hacer esto como ocurria con versiones viejas del motor antes citado, tambien podemos usar los enlaces que vimos en este post, tomemos el ejemplo anterior y modifiquemoslo de la siguiente manera:
CREATE TABLE test.user (
id INTEGER UNSIGNED NOT NULL,
username VARCHAR(50),
password VARCHAR(50)
)
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION = 'srv1';
En este caso el enlace srv1 contiene toda la informacion necesaria para conectarse al servidor sin necesidad de tener que pasar todos los datos como en el ejemplo anterior, este motor tambien soporta dos opciones:
- DBNAME, nos permite especificar el nombre de la base remota
- TABNAME, nos permite especificar el nomreb de la tabla remota
Estas pueden ser combinadas con la opcion de CONNECTION, veamos un ejemplo practico:
CREATE TABLE test.user (
id INTEGER UNSIGNED NOT NULL,
username VARCHAR(50),
password VARCHAR(50)
)
ENGINE = CONNECT
TABLE_TYPE = MYSQL
DBNAME = 'test'
TABNAME = 'user'
CONNECTION = 'mysql://user1:pwd@remote_server/';
Si incluimos los datos de la base y tabla en CONNECTION y a su vez los pasamos por medio de DBNAME y TABNAME, los unicos considerados seran los informados en CONNECTION, tambien podemos usar el nombre de una vista (view) en lugar de la tabla, por ultimo tambien podemos pasar un query el cual sera considerado como una vista sin nombre, veamos un ejemplo:
CREATE TABLE test.user (
id INTEGER UNSIGNED NOT NULL,
username VARCHAR(50),
password VARCHAR(50)
)
ENGINE = CONNECT
TABLE_TYPE = MYSQL
SRCDEF = 'SELECT * FROM db1.user WHERE id > 1000000'
CONNECTION = 'mysql://user1:pwd@remote_server/';
Para este caso usaremos a SRCDEF para enviar el query que necesitemos ser ejecutado en el equipo remoto, como podemos ver tenemos una buena variedad para poder crear nuestras tablas.
En resumen, hoy hemos visto como crear tablas con CONNECT, como es el procedimiento, sus similitudes con FEDERATEDX, algunas opciones extras que no posee el otro motor, y un par de ejemplos de como crearlo, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
