Ejemplo de restricción UNSIGNED
La restricción UNSIGNED se utiliza en MySQL para definir que una columna numérica no puede contener valores negativos.
Cristian Escalante
Última actualización: 8 de mayo de 2025
Ejemplos de restricción UNSIGNED
La restricción UNSIGNED se utiliza en MySQL para definir que una columna numérica no puede contener valores negativos. Esto es útil cuando sabemos que los valores de una columna siempre serán positivos, como en el caso de cantidades o conteos.
Solo se puede aplicar a columnas numéricas, como INT
, FLOAT
, DECIMAL
, etc. Por ejemplo, si tenemos una tabla de productos y queremos asegurarnos de que la cantidad en stock no sea negativa, podemos usar la restricción UNSIGNED de la siguiente manera:
-- ejemplo de restricción UNSIGNED en MySQL
CREATE TABLE productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
cantidad INT UNSIGNED NOT NULL
);
Si intentamos insertar un registro con una cantidad negativa, obtendremos un error:
INSERT INTO productos (nombre, cantidad)
VALUES ('Producto A', -10);
-- Error: violación de restricción UNSIGNED
Si hemos creado la tabla sin la restricción UNSIGNED, podemos modificarla posteriormente para agregar la restricción:
CREATE TABLE productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
cantidad INT NOT NULL
);
ALTER TABLE productos
MODIFY COLUMN cantidad INT UNSIGNED NOT NULL;
-- Ahora, si intentamos insertar un registro con una cantidad negativa, obtendremos un error:
INSERT INTO productos (nombre, cantidad)
VALUES ('Producto A', -10);
-- Error: violación de restricción UNSIGNED
Unsigned en datos enteros
La restricción UNSIGNED se aplica a columnas de tipo entero, como TINYINT
, SMALLINT
, MEDIUMINT
, INT
y BIGINT
. Por ejemplo:
CREATE TABLE enteros (
id INT AUTO_INCREMENT PRIMARY KEY,
valor TINYINT UNSIGNED NOT NULL
);
Unsigned en datos de punto flotante
La restricción UNSIGNED también se puede aplicar a columnas de tipo de punto flotante, como FLOAT
y DOUBLE
. Por ejemplo:
CREATE TABLE flotantes (
id INT AUTO_INCREMENT PRIMARY KEY,
valor FLOAT UNSIGNED NOT NULL
);
Unsigned en datos decimales
La restricción UNSIGNED se puede aplicar a columnas de tipo decimal, como DECIMAL
. Por ejemplo:
CREATE TABLE decimales (
id INT AUTO_INCREMENT PRIMARY KEY,
valor DECIMAL(10, 2) UNSIGNED NOT NULL
);