Ayuda con problema al eliminar dato de tabla con base de datos MySql

Hola.
Tengo un pequeño problema, que en SQL Server lo supe solucionar pero en MySQL no se como hacerlo.
Lo voy a tratar con un ejemplo para que sea más claro.
Tengo una tabla ciudad, que tiene dos campos, el código y ls descripción.
Tengo otra tabla (proveedor) donde guardo el código de la ciudad seleccionada en un combo (que se carga de la tabla ciudad)...
El problema que tengo es que (a diferencia de SQL Server) puedo eliminar sin problemas desde la base de datos una ciudad que haya sido guardada en la tabla proveedor.
Y peor aun, cuando cargo el registro proveedor, mi sistema se cae porque no puede cargar el combo con el código que tenia guardado porque ya no existe.
En SQL Server, al tratar de eliminar una ciudad desde la base de datos, me tiraba el error -2147217900 con el cual yo detectaba una operación ilícita.
¿Cómo puedo detectar esa operación en este caso que utilizo MYSQL?
Gracias!

1 Respuesta

Respuesta
1
Este problema esta solucionado en MySQL 4.0, siempre que al crear las tablas utilices el indesador (InnoDB).
CREATE TABLE venta
(
Id_factura INT NOT NULL,
id_cliente INT NOT NULL,
cantidad INT,
PRIMARY KEY(id_factura),
INDEX (id_cliente),
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
) TYPE = INNODB;
esta es la sentencia de integridad referencial.
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
Manual interesentare para el tema:
http://www.mysql-hispano.org/page.php?id=27&pag=1
¿Si mi base de datos esta en MyIsam se puede cambiar a InnoDB?
Pues no lo he realizado nunca pero puede realizar algún truco.
Pruba a usar la instrucción Alter table, pero es un cabio muy fuerte y puede que no este perimitido.
Pero puede renombrar la tabla, hacer una copia de seguridad con mysqldump, crear de nuevo la tabla con indexación INNODB, y posteriormente importar los datos de la copia de seguridad, ya que esta son sentencias insert.
Suerte con la migración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas