我只是问了一个类似的问题,但结果是因为 MySQL 列名不区分大小写,而我造成了歧义。我接受了给出的建议,并在所有参数前加上了 p。问题是,如果我输入拼写错误的参数值,SP 仍然可以编译,但在运行时会失败。我能做些什么吗?
下面是一个例子:
DELIMITER $$
USE `MobiFit_Dev` $$
DROP PROCEDURE IF EXISTS `User_Signup` $$
CREATE DEFINER = `root` @`localhost` PROCEDURE `User_Signup` (
pEmail VARCHAR (250),
pHashedPassword BINARY(60),
pFirstName VARCHAR (100),
pLastName VARCHAR (100),
pGender ENUM ('Male', 'Female'),
pDateOfBirth DATE,
pHeight DECIMAL (3, 2),
pCurrentWeight DECIMAL (4, 1)
-- CALL User_Signup('lee@gmail.com', 'password', 'Lee', 'Brooks', NULL, NULL, NULL, NULL);
-- CALL User_Signup('lee@gmail.com', 'password', 'Lee', 'Brooks', 'Male', CURRENT_DATE(), 1.85, 101.3);
)
BEGIN
DECLARE vRoleId INT;
SELECT
id INTO …
Run Code Online (Sandbox Code Playgroud)