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) 来模拟布尔值,并确保数据的正确性和一致性。
没有搜到相关的文章