Este manual va para los que son usuarios del Mysql que empiezan, en especial para los que por facilidad utilizan el AppServ en cualquier versión.
Empezare por mi problema cuando leía un manual sobre integridad referencial, pues necesitaba utilizar bases de datos del tipo INNOBD, o en todo caso del tipo BDB (Berkeley Data Base), pues al momento de crear la tabla del siguiente modo:
CREATE TABLE Prueba
(
id int not null auto_increment,
nombre varchar(100),
primary key(id)
) ENGINE = InnoDB;
Pues por defecto las tablas en Mysql antes de la versión 5.0.2, están configuradas para el Tipo MyISAM, entonces para que puedan ser InnoBD debemos declara de la forma ENGINE = InnoDB, como en el ejemplo, pero el problema en especial en los que instalan los AppServ es que la configuración en el my.ini que se encuentra en la Carpeta C:/Windows se le agrega la siguiente línea:
skip-innodb(*)
Lo que hace esta línea es que no permite crear tablas en el formato InnoDB, lo que no nos permite trabajar con integridad referencial, a diferencia de las versiones posteriores que agregan en el my.ini, que se encuentra en C:/Archivos de Programas/Mysql/Mysql Server 5.0 en especial en los instaladores independientes las siguientes líneas:
# The default storage engine that will be used when create new tables when default-storage-engine=INNODB(**)
Estas a diferencia de las anteriores lo que permite es que todas las tablas que se crean sean del Tipo InnoDB por defecto, claro esta que las tablas del sistema las que vienen en el Mysql, deben ser del Tipo MyISAM ya que estas trabajan en este tipo, explicado las instalaciones vayamos a las soluciones.
Bueno la más fácil seria cambiar la primera línea (*) por la segunda (**), pero que pasaría si deseamos crear tablas del Tipo MyISAM, pues tendríamos que declarar al crear la tabla de la forma siguiente:
CREATE TABLE Prueba
(
id int not null auto_increment,
nombre varchar(100),
primary key(id)
) ENGINE = MyISAM;
Esto tal vez les genere un problema para los que generalmente crean sus tablas en el tipo MyISAM, entonces en el archivo my.ini se debe solamente borrar la línea de Skip-innoDB o comentarla para que nos permita crear tablas del tipo InnoDB, y el problemita ya esta solucionado.
Antes de terminar como nos aseguramos que tenemos soporte para el tipo InnoDB, pues simplemente ejecutamos la siguiente sentencia:
SHOW VARIABLES LIKE '%innodb%';
La que mostrara entre otras cosa lo siguiente:
+---------------------------------+------------------------+
| Variable_name | Value |
+---------------------------------+------------------------+
| have_innodb | YES |
..
Esta nos permite saber si esta o no habilitado esta característica y así poder solucionar el problema si es que lo tenemos.
Ahora ya esta solucionado, a trabajar con las tablas InnoBD, así poder hacer Integridad referencial, la que nos permite usar Primary Key, o Foreign Key. Bueno para terminar disculpas por la falta de orden y por no ser tan claro, espero les sirva de algo este manual.
Russvell Oblitas Valenzuela
Bch. Sistemas e Informática