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.
- Restricción de nivel de columna
- 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.
Restricción de nivel de columna
: el tipo de restricciones comono 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.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 restriccionesPrimaryKey
,ForeignKey
eIndex
.
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
.
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.
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:
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.
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:
-
Previamente se necesita el nombre de la clave foránea. Se requiere una clave para eliminar la restricción de la tabla.
-
El comando
drop
sin conocer el nombre de la clave conduce al error que se muestra a continuación: -
El comando
SHOW CREATE TABLE
es obligatorio.
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