Eliminar restricción de la tabla MySQL

Rashmi Patidar 30 enero 2023
  1. Crear una tabla con restricciones en MySQL
  2. Eliminar restricción de la tabla MySQL
Eliminar restricción de la tabla MySQL

La restricción es un conjunto de reglas o restricciones que prohíben la entrada de datos en las columnas de MySQL. La tabla en MySQL tiene varios atributos o columnas sobre las cuales un usuario desea restricciones.

Las barreras aplicadas deshabilitan la concesión de todos los tipos de valores de datos en el conjunto de columnas de MySQL, proporcionando coherencia en toda la columna. Habilita solo los valores permitidos en la definición del conjunto de restricciones aplicado.

Crear una tabla con restricciones en MySQL

En MySQL, los usuarios pueden aplicar las restricciones en las columnas junto con el esquema de la tabla. Estas restricciones pueden ser de los dos tipos que se indican a continuación.

  1. Restricción de nivel de columna
  2. Restricción de nivel de tabla

Sintaxis para crear una tabla con restricciones:

Create table tablemname
 attributeName1 attributeType constraint,
 attributeName2 attributeType constraint,
 ...
 attributeNameN attributeType constraint,
 TableLevelConstraint(AttributeName)

La sintaxis en el código anterior muestra cómo crear restricciones de nivel de tabla y nivel de columna para cada uno. La idea detrás de ambos es otorgar a los usuarios el privilegio de agregar restricciones según sea necesario.

  1. Restricción de nivel de columna: el tipo de restricciones como no nulas y únicas se definen al definir los nombres de los atributos. Significa que el nombre de la restricción es posterior a que se proporcionen los datos para el atributo.
  2. Restricción a nivel de tabla: El tipo de restricciones se define al final de la definición de la tabla. Estas restricciones son como las restricciones PrimaryKey, ForeignKey e Index.

Lista de consultas antes de la consulta real en las tablas:

create table studentPK ( id varchar(255) not null, firstName varchar(255), lastname varchar(255), age integer, primary key (id));

El comando anterior crea una tabla studentPK con atributos como id, firstName, lastName y age. La restricción de clave principal es una palabra clave definida en MySQL para crear la clave principal o el identificador único de la tabla.

La sintaxis toma los parámetros en su argumento para hacer que el atributo sea la clave principal.

Describe studentPK;

Otra consulta es describir la tabla que se crea. La imagen que se muestra a continuación ilustra la restricción que se ingresa en los campos de la tabla studentPK.

Ejecución real con restricciones en la tabla

Eliminar restricción de la tabla MySQL

Consulta para ejecutar la restricción DROP en MySQL:

Alter table studentPK drop primary key;

La sintaxis anterior cambia la sintaxis de studentPk usando la palabra clave Alter. Dado que la restricción está en el nivel de la tabla, es fácil caer bien en el nivel de la tabla.

El comando Alter es el que mejor se adapta al cambiar el esquema de la tabla. Cambia el esquema de la tabla StudentPk eliminando la clave principal de la misma.

A continuación se muestra la imagen de ejecución local para el mismo.

Soltar la restricción de clave principal de la tabla studentPk

De manera similar, cuando la misma clave se usa en otras tablas, se elimina eliminando la clave externa de otra tabla.

Consulta para crear una restricción de clave foránea:

create table studentDept ( deptid varchar(255) not null, deptName varchar(255), id varchar(255), foreign key(id) references studentPK (id));

La consulta anterior crea una clave externa como id en otra tabla de relación studentDept. La clave externa se forma utilizando la palabra clave clave externa.

Junto con la palabra clave, requiere la palabra clave references para vincular la tabla principal y hacer que las dos tablas sean dependientes. La palabra clave references vincula el campo id de la tabla studentPk como clave externa en la tabla studentDept.

La salida se puede verificar en la imagen que se muestra a continuación:

Crear una nueva tabla con restricción de clave externa en MySQL

Cuando se crea una clave externa internamente, se crea un nuevo nombre de clave para la clave. La declaración para describir la tabla y ver el nombre es la siguiente:

SHOW CREATE TABLE studentDept;

A continuación se muestra la imagen de la salida de la consola para ver la estructura de la tabla en MySQL.

Describir la tabla de MySQL y el nombre de la restricción

La imagen de arriba dice que la clave externa se crea con el nombre studentdept_ibfk_1. Ahora, es fácil soltar la clave externa con el nombre que se crea.

Alter table studentDept drop foreign key studentdept_ibfk_1;

La consulta anterior elimina la clave externa de la tabla studentDept. El comando Alterar establece que el cambio ocurre a nivel de esquema.

La clave externa se elimina de la tabla studentDept. Se puede volver a comprobar con el comando describe.

Puntos a recordar antes de soltar la clave foránea:

  1. Previamente se necesita el nombre de la clave foránea. Se requiere una clave para eliminar la restricción de la tabla.

  2. El comando drop sin conocer el nombre de la clave conduce al error que se muestra a continuación:

    Error al eliminar la restricción de clave externa cuando se usa sin nombre de clave

  3. El comando SHOW CREATE TABLE es obligatorio.

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - MySQL Table