MySQL Routine:
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `INSERT_Employee_Info`(
IN lname varchar(64),
IN fname varchar(64),
IN mname varchar(64)
)
BEGIN
INSERT INTO tbl_employee_info(lname, fname, mname)
VALUES(lname, fname, mname);
END
Run Code Online (Sandbox Code Playgroud)
Sometimes, the values lname, fname and mname may contain nothing but not null, I want the insert statement to insert NULL instead of the '' value.
I had the following in mind but I highly doubt it will work:
INSERT INTO tbl_employee_info(lname, fname, mname)
VALUES(CASE lname WHEN '' THEN NULL ELSE lname END,
CASE fname WHEN '' THEN NULL ELSE fname END,
CASE mname WHEN '' THEN NULL ELSE mname END);
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 12
它会工作,但你需要括号括起来 case
INSERT INTO tbl_employee_info(lname, fname, mname)
VALUES
(
(CASE lname WHEN '' THEN NULL ELSE lname END),
(CASE fname WHEN '' THEN NULL ELSE fname END),
(CASE mname WHEN '' THEN NULL ELSE mname END)
);
Run Code Online (Sandbox Code Playgroud)