Base de datos

Solo disponible en BuenasTareas
  • Páginas : 2 (279 palabras )
  • Descarga(s) : 7
  • Publicado : 8 de abril de 2010
Leer documento completo
Vista previa del texto
Integridad referencial en MySQL
Autor: MySQL Hispano
• Actualización de registros con claves foráneas

Actualización de registros con claves foráneas
Las opciones correspondientes a ONUPDATE están disponibles a partir de la versión 4.0.8.
Estas opciones son muy similares cuando se ejecuta una sentencia UPDATE, en lugar de una sentencia DELETE. Estas son:
• ON UPDATE CASCADE
•ON UPDATE SET NULL
• ON UPDATE RESTRICT
Vamos a ver un ejemplo, pero antes que nada, tenemos que eliminar la restricción de clave foránea (debemos usar el ID específico de nuestra tabla).mysql> ALTER TABLE venta DROP FOREIGN KEY 0_26;
Query OK, 2 rows affected (0.22 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
-> REFERENCEScliente(id_cliente) ON DELETE RESTRICT ON UPDATE CASCADE;
Query OK, 2 rows affected (0.22 sec)
Records: 2 Duplicates: 0 Warnings: 0
NOTA: Se debe especificar ON DELETE antes de ON UPDATE, ya que deotra manera se recibirá un error al definir la restricción.
Ahora está lista la clave foránea para una actualización en cascada. Este es el ejemplo:
mysql> SELECT * FROM venta;+------------+------------+----------+
| id_factura | id_cliente | cantidad |
+------------+------------+----------+
| 1 | 1 | 23 |
| 3 | 2 | 81 |+------------+------------+----------+
2 rows in set (0.00 sec)

mysql> UPDATE cliente SET id_cliente=10 WHERE id_cliente=1;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>SELECT * FROM venta;
+------------+------------+----------+
| id_factura | id_cliente | cantidad |
+------------+------------+----------+
| 1 | 10 | 23 |
| 3 |2 | 81 |
+------------+------------+----------+
2 rows in set (0.00 sec)
En este caso, al actualizar el valor de id_cliente en la tabla cliente, se actualiza de manera automática el...
tracking img