¿Hay alguna forma de deshabilitar las comprobaciones de tablas personalizadas en MySQL?
Anteriormente, MySQL ignoraba silenciosamente las comprobaciones de tablas, desde la versión 8.0.16 están implementadas y aplicadas, pero parece que no hay forma de convertirlas en globales.
MySQL solo tiene variables FOREIGN_KEY_CHECKS y UNIQUE_CHECKS , que son específicas, no hay nada para las restricciones de verificación.
Mi problema principal es que necesito agregar un cheque en la mesa grande. Si esto sucede con una verificación de clave externa, se puede usar la variable FOREIGN_KEY_CHECK junto con el algoritmo ALTER_TABLE e INPLACE:
SET FOREIGN_KEY_CHECKS = 0; ALTER TABLE my_table ADD CONSTRAINT my_table_constraint FOREIGN KEY (...) REFERENCES other_table, ALGORITHM=INPLACE SET FOREIGN_KEY_CHECKS = 1;Ahora, debido a que parece que no hay nada para desactivar las comprobaciones globalmente, no hay forma de usar el algoritmo INPLACE con la restricción de comprobación, lo siguiente fallará:
ALTER TABLE my_big_table ADD CONSTRAINT only_some_numbers CHECK (column_one >= 100 AND column_one <= 300), ALGORITHM=INPLACE;Parece que MariaDB tiene una variable para permitir esto: https://mariadb.com/kb/en/server-system-variables/#check_constraint_checks
No encontré nada en la documentación de MySQL. ¿Hay alguna forma diferente de lograr tal adición en el lugar de una nueva restricción de verificación?