lunes, 2 de enero de 2017

alterar CONSTRAINT de una tabla con SQL en LibreOffice Base (XXVII)

LibreOffice Base
Observe la siguiente instrucción:

ALTER TABLE "Clientes"
ALTER COLUMN "Domicilio";

Hemos creado un campo Domicilio en la tabla Clientes, en esta instrucción SQL no le hemos incluido ninguna restricción ni CONSTRAINT, para luego añadírsela desde LibreOffice Base.

Observe la siguiente instrucción:

ALTER TABLE "Clientes" ADD CONSTRAINT "Domicilio" UNIQUE ("Domiclio");

Con esta instrucción vamos evitar que el campo Domicilio de la tabla Clientes se duplique. Recuerde los paréntesis que tiene la instrucción, le evitarán algunos errores y por consiguiente perdidas de tiempo.

En primer lugar introduciremos nuestra instrucción SQL, haga clic en Herramientas - SQL... 

LibreOffice Base y SQL

Nos muestra el siguiente cuadro de diálogo, donde puede introducir sentencias SQL directas, visualizando el resultado en el campo estado y salida.

LibreOffice Base y SQL

Introduzca la sentencia en el campo Orden a ejecutar y haga clic en el botón Ejecutar.

LibreOffice Base y SQL

Nos mostrará el estado de haber ejecutado esta instrucción en el cuadro de texto Estado, haga clic en el botón Cerrar.

LibreOffice Base y SQL

Haga clic en la barra de menú en la opción Ver - Actualizar tabla, es muy importante que realice este paso, ya que puede aparecer errores en el futuro.


LibreOffice Base y SQL

Abra la tabla e ingrese un nuevo registro para probar el funcionamiento de los cambios. Ingrese un registro y luego otro, pero este con el mismo domicilio para realizar la prueba que no se puede introducir el mismo domicilio. Al intentar dar de dar el alta de segundo registro nos muestra el siguiente error.

LibreOffice Base y SQL

Haga clic en el botón Aceptar para modificar el campo Domicilio del registro o haga clic en el botón Más para mostrar una explicación mas amplia al error.

LibreOffice Base y SQL

Modificado el error, nos admite el registro.

LibreOffice Base y SQL

El siguiente paso que daremos será eliminar el CONSTRAINT que hemos creado, se realiza con la siguiente instrucción.

ALTER TABLE "Clientes" DROP CONSTRAINT "Domicilio";

Para terminar incluiremos un CONSTRAINT en nuestro campo Domicilio con la siguiente instrucción SQL. Vamos a impedir que incluyan un domicilio con valor nulo en nuestra tabla.

ALTER TABLE "Clientes" ALTER COLUMN "Domicilio" SET NOT NULL

Luego impediremos que nos introduzcan espacios. Recuerde los paréntesis y las comillas simples, se evitará errores y perdidas de tiempo.

ALTER TABLE "Clientes" ADD CONSTRAINT "Domicilio" 
CHECK ("Domicilio" > ' ');

Podemos ver las CONSTRAINT que están definidas en la tabla y en que campos:

LibreOffice Base y SQL

Pasemos a la práctica, en primer lugar introduciremos nuestra instrucción SQL, haga clic en Herramientas - SQL...

LibreOffice Base y SQL

Nos muestra el siguiente cuadro de diálogo, donde puede introducir sentencias SQL directas, visualizando el resultado en el campo estado y salida.

LibreOffice Base y SQL

Introduzca la sentencia en el campo Orden a ejecutar y haga clic en el botón Ejecutar.

LibreOffice Base y SQL

Nos mostrará el estado de haber ejecutado esta instrucción en el cuadro de texto Estado, haga clic en el botón Cerrar.

LibreOffice Base y SQL

Si realizamos algunas pruebas en nuestra tabla con el campo que le hemos añadido las CONSTRAINT, provocándole algunos errores nos muestra lo siguiente.

LibreOffice Base y SQL

Si introducimos un domicilio correcto nos mostrará la siguiente imagen con el registro introducido.

LibreOffice Base y SQL

Le recomiendo leer el artículo ver las CONSTRAINT de una Base de datos en LibreOffice Base con SQL (XXI).  Es conveniente que para tanto trasiego de instrucción SQL se busque una base de datos de prueba.



0 comentarios:

Publicar un comentario