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

¿Restricción en la tabla MYSQL?

Hay algunas cosas sobre las dos restricciones que desea imponer:

  1. La nueva fila insertada no puede tener un valor NULL para la columna Parent_group.

    • Puede imponer una restricción NOT NULL en una columna solo si contiene todos los valores no nulos. Necesita un valor nulo en esta columna para el nodo raíz.
    • Para esto, puede usar la restricción CHECK. Obtenga más información sobre la RESTRICCIÓN DE COMPROBACIÓN aquí .
    • Puedes poner

Esto permitirá un valor NULO solo para el nodo raíz y aplicará un valor NO NULO para todas las demás filas de la tabla.

  1. Agregue una restricción para que la fila RootGroup no se pueda eliminar.

    • Que ya ha definido una clave externa entre parent_group y pkey , la base de datos aplicará automáticamente la integridad referencial y prohibirá que se elimine el nodo raíz (o cualquier nodo principal). La base de datos devolverá un error si se intenta ELIMINAR en cualquier nodo principal o raíz.
  2. Para el punto mencionado en la EDITAR sección, puede poner una restricción de verificación simple en la tabla como
    CHECK (parent_group != pkey) . Esto debería hacer el trabajo por ti.

Lea sobre cómo definir restricciones de clave externa y cómo usarlas para hacer cumplir la integridad referencial. Además, vaya al enlace que publiqué anteriormente o aquí antes de aplicar estas sugerencias.