MySQL中的字符串类型主要包括CHAR
, VARCHAR
, TEXT
, BINARY
, VARBINARY
, BLOB
等。当谈论字符串不为NULL
时,我们通常指的是这些字符串类型的字段不允许存储NULL
值,而必须有一个实际的字符串值。
NULL
,可以简化SQL查询语句。NULL
的字段,数据库可以更有效地创建和使用索引。TINYTEXT
, TEXT
, MEDIUMTEXT
, LONGTEXT
等不同长度类型。CHAR/VARCHAR
类似,但用于存储二进制数据。在MySQL中,如果一个字段被定义为NOT NULL
,那么在插入或更新数据时,该字段必须有一个值。如果没有提供值,或者尝试插入NULL
值,MySQL将拒绝执行该操作,并返回错误。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL DEFAULT 'guest',
email VARCHAR(100) NOT NULL
);
$username = $_POST['username'] ?? 'default_username';
$email = $_POST['email'] ?? 'default@example.com';
$sql = "INSERT INTO users (username, email) VALUES ('$username', '$email')";
DELIMITER //
CREATE TRIGGER before_user_insert
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF NEW.username IS NULL THEN
SET NEW.username = 'default_username';
END IF;
IF NEW.email IS NULL THEN
SET NEW.email = 'default@example.com';
END IF;
END;
//
DELIMITER ;
领取专属 10元无门槛券
手把手带您无忧上云