gpt4 book ai didi

php - 存储过程 'IF' 语句 + 'UPDATE' 或 'INSERT' 基于空字段

转载 作者:行者123 更新时间:2023-11-30 21:57:41 26 4
gpt4 key购买 nike

就数据库而言,我是一个临时用户。我的任务是创建程序,他们基本上将执行非常基本的自动保存功能。

我以前创建过存储过程,但都没有限制必须检查 NULL 条目并使用 IF 语句来确定是否需要完成更新或新的插入。

数据库:MySQL编辑:MYSQL WorkBench

这是我的程序:


CREATE DEFINER=`appuser`@`15.15.15.%` PROCEDURE `test `(
id varchar(45),
q01 varchar(2),
a01 varchar(45),

q06 varchar(2),
a06 varchar(45)
)
BEGIN
DECLARE _nullCheck VARCHAR(25);

SET _ nullCheck = (SELECT statement to check for null entries));
IF (_nullCheck) THEN
BEGIN
UPDATE statement
END;
ELSE
BEGIN
INSERT statement
END;
END;

在我的 MySQL Workbench 中,它告诉我这个“END”缺少一个“IF”


我在查看有关 IF 和存储过程的其他线程后构建了我的存储过程,这就是我想出的。

提前感谢您的任何建议或帮助。

编辑更正:


CREATE DEFINER=`appuser`@`15.15.15.%` PROCEDURE `test `(
id varchar(45),
q01 varchar(2),
a01 varchar(45),

q06 varchar(2),
a06 varchar(45)
)
BEGIN
DECLARE _nullCheck VARCHAR(25);

SET _ nullCheck = (SELECT statement to check for null entries));

IF (_nullCheck) THEN
UPDATE statement
ELSE
INSERT statement
END IF;
END

最佳答案

尝试:(程序的伪代码,不编译)

mysql> DELIMITER //

mysql> CREATE DEFINER=`appuser`@`15.15.15.%` PROCEDURE `test` (
-> id varchar(45),
-> q01 varchar(2),
-> a01 varchar(45),
-> …
-> q06 varchar(2),
-> a06 varchar(45)
-> )
-> BEGIN
-> DECLARE _nullCheck VARCHAR(25);
-> SET _ nullCheck = (SELECT statement to check for null entries));
-> IF (_nullCheck) THEN
-> BEGIN
-> UPDATE statement
-> END;
-> ELSE
-> BEGIN
-> INSERT statement
-> END;
-> END IF;
-> END//
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

更新

mysql> DROP PROCEDURE IF EXISTS `test`;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> DELIMITER //

mysql> CREATE PROCEDURE `test` (
-> id varchar(45),
-> q01 varchar(2),
-> a01 varchar(45),
-> q06 varchar(2),
-> a06 varchar(45)
-> )
-> BEGIN
-> DECLARE `_nullCheck` VARCHAR(25);
-> SET `_nullCheck` := (SELECT 'TRUE');
-> IF (`_nullCheck` = 'TRUE') THEN
-> SELECT 'UPDATE';
-> ELSE
-> SELECT 'INSERT';
-> END IF;
-> END//
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

mysql> CALL `test`(NULL, NULL, NULL, NULL, NULL);
+--------+
| UPDATE |
+--------+
| UPDATE |
+--------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

关于php - 存储过程 'IF' 语句 + 'UPDATE' 或 'INSERT' 基于空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44524353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com