Задать вопрос
IDma88
@IDma88
Программист C++

В чём ошибка (1064) при создании функции в MySQL?

Пытаюсь создать функцию в MySQL. Вот код:

CREATE FUNCTION `addUser2` (
	in_surname VARCHAR(255), in_name VARCHAR(255), in_midname VARCHAR(255),
	in_login VARCHAR(64), in_password VARCHAR(255), in_headID INT(11), in_deputyID INT(11),
	in_jid VARCHAR(255), in_sendNotify TINYINT(1), in_lock TINYINT(1), in_lockSelect TINYINT(1))
	RETURNS INT(11)
BEGIN
	DECLARE salt	VARCHAR(32);
	DECLARE passwd	VARCHAR(32);
	
	SET salt	= MD5(UNIX_TIMESTAMP());
	SET passwd	= MD5(salt + password);

	INSERT INTO
		`users`
		(`surname`, `name`, `midname`, `login`, `password`, `salt`, `headID`, `deputyID`, `jid`, `sendNotify`, `lock`, `lockSelect`)
		VALUES
		(in_surname, in_name, in_midname, in_login, passwd, salt, in_headID, in_deputyID, in_jid, in_sendNotify, in_lock, in_lockSelect);

	RETURN LAST_INSERT_ID();
END

При выполнении запроса получаю ошибку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7

Поясните, что не так я делаю
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
AloneCoder
@AloneCoder
[object Object]
DELIMITER $$
CREATE FUNCTION `addUser2` (
  in_surname VARCHAR(255), in_name VARCHAR(255), in_midname VARCHAR(255),
  in_login VARCHAR(64), in_password VARCHAR(255), in_headID INT(11), in_deputyID INT(11),
  in_jid VARCHAR(255), in_sendNotify TINYINT(1), in_lock TINYINT(1), in_lockSelect TINYINT(1))
  RETURNS INT(11)
BEGIN
  DECLARE salt	VARCHAR(32);
  DECLARE passwd	VARCHAR(32);
  
  SET salt	= MD5(UNIX_TIMESTAMP());
  SET passwd	= MD5(salt + password);

  INSERT INTO
    `users`
    (`surname`, `name`, `midname`, `login`, `password`, `salt`, `headID`, `deputyID`, `jid`, `sendNotify`, `lock`, `lockSelect`)
    VALUES
    (in_surname, in_name, in_midname, in_login, passwd, salt, in_headID, in_deputyID, in_jid, in_sendNotify, in_lock, in_lockSelect);

  RETURN LAST_INSERT_ID();
END
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
26 дек. 2024, в 23:03
500 руб./в час
26 дек. 2024, в 21:50
5000 руб./за проект
26 дек. 2024, в 21:01
10000 руб./за проект