Definir y modificar restricciones de comprobación

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Explorar y cambiar la estructura de las bases de datos > Diseñar tablas en el editor de diseños >

Definir y modificar restricciones de comprobación

Puede definir restricciones de comprobación tanto a nivel de tabla como a nivel de columna para asegurarse de que en las columnas de la tabla solamente se puedan introducir datos válidos. Si la condición de la restricción no se cumple, la columna no se actualizará y no se añadirán filas nuevas (imagen siguiente). Cuando esto ocurre, DatabaseSpy emite un mensaje de error en la pestaña Mensajes.

app_output-check-constraint-failed

Nota:no se pueden añadir restricciones de comprobación en las siguientes bases de datos: MariaDB, MySQL, SQLite.

 

 

Para definir una restricción de comprobación en el Editor de diseños:

1.Tiene dos opciones:

 

Hacer clic con el botón derecho en la tabla y seleccionar Insertar nuevo/a | Restricción de comprobación en el menú contextual.
Expandir la sección Restricciones de comprobación (con el icono en forma de triángulo) y hacer clic en el icono Crear restricción de comprobación nueva ic_add-column de la columna Restricción de comprobación.

 

La nueva restricción de comprobación se añade en la sección Restricciones de comprobación, que recibe por defecto el nombre <generado>. Esto significa que su nombre será generado automáticamente por la base de datos. Esto garantiza el uso de nombres únicos y evita errores. Si lo prefiere, puede invalidar el nombre generado: haga doble clic en <generado>, escriba el nombre de la clave y pulse Entrar.

 

Si reemplaza el nombre generado con un nombre personalizado, el nombre nuevo debe ser único o, de lo contrario, se producirán errores cuando se ejecute el script de cambios de la base de datos.

 

2.En la columna Expresión introduzca la expresión que se debe comprobar cuando se confirmen datos en la base de datos y pulse Entrar.

dbs_chk_constraint

DatabaseSpy generará un script de cambios que debe ejecutarse para que la restricción de comprobación se cree realmente en la base de datos. DatabaseSpy valida la expresión que se usará para la restricción de comprobación. Por eso, mientras se define la restricción de comprobación en el Editor de diseños, en la ventana Script de cambios de la estructura de la base de datos aparecen comentarios sobre la validez de la expresión.

 

cs_CK-invalid-expression

 

El script de cambios notifica sobre estos errores de validación:

 

Falta una expresión
Identificador no válido
Una constante textual o numérica no coincide con el tipo de datos de la columna
Los tipos de datos de las columnas no coinciden
Expresión no válida
Se aplicó una cláusula "IS NOT NULL" a una columna que admite valores NULL

 

Ver las restricciones de comprobación

En el Editor de diseños las restricciones de comprobación definidas a nivel de tabla aparecen en una sección diferente donde se pueden editar o eliminar y donde se pueden añadir restricciones de comprobación nuevas.

design_check-constraints

En el Editor de diseños y en el Explorador las columnas que tienen asignada una restricción de comprobación llevan el icono de restricción de comprobación ic_check-column. Las restricciones de comprobación definidas a nivel de columna se pueden editar en la ventana Propiedades de la columna a la que afectan. Recuerde que no aparecen en la sección Restricciones de comprobación del diseño de tabla. Para ver el nombre y la definición de la restricción de una columna es necesario abrir sus propiedades en la ventana Propiedades.

 

En el Explorador las restricciones de comprobación aparecen en la subcarpeta de restricciones de la tabla o columna, dependiendo de dónde se definió la restricción.

 

ob_check-constraint-table

Las restricciones de comprobación definidas a nivel de tabla aparecen en la carpeta Restricciones de la tabla a la que se asignaron.

ob_check-constraint-col

Las restricciones de comprobación definidas a nivel de columna aparecen dentro de la carpeta Restricciones de la columna. Recuerde que en este caso a nivel de tabla no hay carpeta Restricciones.

 

Modificar restricciones de comprobación

La expresión de una restricción de comprobación se puede renombrar, eliminar o cambiar. Recuerde que en primer lugar se elimina la restricción y después se recrea una definición nueva. La correspondiente instrucción SQL se genera automáticamente en la ventana Script de cambios de la estructura de la base de datos (cuando se modifica la definición de la comprobación en el Editor de diseños).

 

Cuando cambia el nombre de una columna que se utiliza en una expresión de restricción de comprobación, DatabaseSpy actualiza automáticamente la restricción de comprobación en el script de cambios utilizado para renombrar dicha columna.

cs_alter-CK

Si se elimina una columna, también se eliminan las restricciones de comprobación que hagan referencia a ella.

 

Agregar restricciones de comprobación mediante SQL

Si ya existen restricciones de comprobación en una tabla, podrá agregar restricciones nuevas haciendo clic con el botón derecho en una restricción y generando una instrucción que use sus propiedades. Una vez editadas las propiedades y ejecutada la instrucción SQL, se añade una nueva restricción de comprobación a la base de datos.

 

Para agregar una restricción de comprobación a una tabla mediante SQL:

1.Conéctese a la base de datos y abra el correspondiente origen de datos en el Explorador.
2.Expanda la tabla donde desea agregar la restricción de comprobación y haga clic con el botón derecho en una de las entradas de la carpeta Restricciones.
3.Ahora tiene dos opciones:
oSeleccionar Mostrar en editor SQL nuevo | ADD en el menú contextual.
oArrastrar con el botón derecho la restricción hasta una ventana del Editor SQL y elegir ADD en el menú emergente.

 

Esto crea una instrucción ALTER TABLE en la ventana del Editor SQL.

 

4.Ahora edite la instrucción de la siguiente manera:

 

1. Introduzca la ruta de acceso de la tabla que debe comprobarse justo después de la parte ALTER TABLE de la instrucción.
2. Introduzca el nombre de la nueva restricción de comprobación justo después de la parte ADD CONSTRAINT de la instrucción.
3. Edite la sección CHECK e introduzca la expresión que debe comprobarse cuando se actualice la tabla.
5.Haga clic en el botón Ejecutar ic_execute-sql para ejecutar la instrucción y agregar la nueva restricción de comprobación a la base de datos.
6.En el Explorador haga clic con el botón derecho en la base de datos y elija la opción Actualizar en el menú contextual.

 


© 2019 Altova GmbH