Как переопределить / переопределить MySQL User Function при каждом обновлении?

Можно ли переопределить функцию MySQL каждый раз, когда вы обновляете, это мой код

mysql_query("DROP FUNCTION IF EXISTS Add_num;
CREATE FUNCTION Add_num(LAT_A INT)
RETURNS INT
READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE Ans BIGINT;
SET Ans = LAT_A + 2;
RETURN Ans;
END");

хотя у меня есть линия DROP FUNCTION IF EXISTS Add2; функция остается неизменной при обновлении. Например я изменил 2 в 3 в соответствии SET Ans = LAT_A + 2; а потом обновился и все равно добавляет 2 не 3,

1

Решение

Я написал решение для вас, но здесь я использовал mysqli, поскольку вы знаете, что mysql_query () не принимает точку с запятой (;) и может выполнять только один запрос за раз.

Код как ниже:

$mysqli = new mysqli("localhost", "root", "", "test");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!$mysqli->query("DROP FUNCTION IF EXISTS Add_num") ||
!$mysqli->query("CREATE FUNCTION Add_num(LAT_A INT) RETURNS INT  READS SQL DATA  DETERMINISTIC  BEGIN  DECLARE Ans BIGINT;  SET Ans = LAT_A + 4;  RETURN Ans;  END;")) {
echo "Function creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$select_qry = " SELECT Add_num(6) as result";
$result = $mysqli->query($select_qry);

if ($result) {
$row = $result->fetch_assoc();
echo "Result is :{$row['result']}";
}

$mysqli->close();
0

Другие решения

Других решений пока нет …