MySQL 中没有专门的 BOOLEAN
数据类型,但可以使用 TINYINT(1)
来模拟布尔值。在 MySQL 中,TINYINT(1)
通常用于存储布尔值,其中 0
表示 FALSE
,非零值(通常是 1
)表示 TRUE
。
TRUE
或 FALSE
。TINYINT(1)
比使用 VARCHAR
或其他类型存储布尔值更节省空间。0
表示 FALSE
,非零值表示 TRUE
。-- 创建表
CREATE TABLE user_settings (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
is_active TINYINT(1) DEFAULT 0
);
-- 插入数据
INSERT INTO user_settings (user_id, is_active) VALUES (1, 1);
-- 查询数据
SELECT * FROM user_settings WHERE user_id = 1;
TINYINT(1)
而不是 BOOLEAN
?BOOLEAN
数据类型。TINYINT(1)
来模拟布尔值。TINYINT(1)
只存储 0
或 1
?0
或 1
。DELIMITER $$
CREATE TRIGGER before_user_settings_insert
BEFORE INSERT ON user_settings
FOR EACH ROW
BEGIN
IF NEW.is_active NOT IN (0, 1) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'is_active must be 0 or 1';
END IF;
END$$
DELIMITER ;
通过上述方法,可以有效地使用 TINYINT(1)
来模拟布尔值,并确保数据的正确性和一致性。
领取专属 10元无门槛券
手把手带您无忧上云