sql >> Base de Datos >  >> RDS >> Mysql

En MySQL, ¿puedo aplazar las comprobaciones de integridad referencial hasta la confirmación?

Parece que mi respuesta está aquí ...

Al igual que MySQL en general, en una instrucción SQL que inserta, elimina o actualiza muchas filas, InnoDB verifica las restricciones ÚNICAS y FOREIGN KEY fila por fila. Al realizar comprobaciones de claves foráneas, InnoDB establece bloqueos de nivel de fila compartidos en registros secundarios o principales que tiene que mirar. InnoDB comprueba las restricciones de clave externa inmediatamente; el cheque no se aplaza hasta la confirmación de la transacción. De acuerdo con el estándar SQL, el comportamiento predeterminado debe ser una verificación diferida. Es decir, las restricciones solo se verifican después de que se haya procesado toda la instrucción SQL. Hasta que InnoDB implemente la verificación de restricciones diferidas, algunas cosas serán imposibles, como eliminar un registro que se refiere a sí mismo usando una clave externa.

De vuelta a la mesa de dibujo.