
Miguel Jose Lugo Martinez
PreguntaBuenas, cual es la diferencia en ON DELETE NO ACTION y el comando ON DELETE RESTRICT ?

Irving Juárez
Cuando esta en RESTRICT necesita que el usuario no tenga posts para que se pueda borrar el usuario. Es como si antes de que tu quisieras eliminar tu cuenta de fb, te pidiera que borraras todos tus posts. Eso no pasa, y por eso sabemos que en fb es CASCADE, ya que si se borra un usuario se borran todos sus posts

Oscar Jaramillo
RESTRICT: significa que cualquier intento de eliminar y / o actualizar el padre fallará arrojando un error. Este es el comportamiento predeterminado en el caso de que una acción referencial no se especifique explícitamente.
NO ACTION: En MySQL, equivalente a RESTRICT. El servidor MySQL rechaza la operación de eliminación o actualización para la tabla primaria si hay un valor de clave externa relacionado en la tabla referenciada....
Por lo tanto, en ++MySQL NO ACTION es lo mismo que RESTRICT.++
Pero por otro lado, las bases de datos IBM DB2, PostgreSQL , HSQLDB y SQLite conocen la diferencia entre ON DELETE RESTRICT y ON DELETE NO ACTION.
En las bases de datos en las que las dos cláusulas son diferentes:
Las reglas de restricción de RESTRICT se comprueban antes de cualquier otra operación.
Las reglas de restricción de NO ACTION se comprueban después de la declaración y todas las demás operaciones (como los disparadores) se completan.
En la mayoría de los casos, no hay diferencia entre las dos opciones. La diferencia es visible cuando la operación de borrado es desencadenada por alguna otra operación, como borrar en cascada desde una tabla diferente, borrar a través de una vista con una union, un desencadenante, etc.

Omar Daniel Centeno
En esencia es lo mismo.
NO ACTION
RESTRICT: Rejects the delete or update operation for the parent table. Specifying RESTRICT (or NO ACTION) is the same as omitting the ON DELETE or ON UPDATE clause. NO ACTION: A keyword from standard SQL. In MySQL, equivalent to RESTRICT. The MySQL Server rejects the delete or update operation for the parent table if there is a related foreign key value in the referenced table. Some database systems have deferred checks, and NO ACTION is a deferred check. In MySQL, foreign key constraints are checked immediately, so NO ACTION is the same as RESTRICT.