создать процедуру в mysql верстаке - PullRequest
0 голосов
/ 24 марта 2020

У меня есть процедура, которая должна работать в mysql верстаке, однако я получаю сообщение об ошибке в строке 7:


create PROCEDURE addIndividualUser(
    var_login varchar(255),
    var_password varchar(255),
    var_email varchar (255)
    )
BEGIN
    DECLARE var_user_id int;          ---here is the issue
    START TRANSACTION;
    INSERT into user
        (login, password, email, is_active)
    VALUES
    (var_login,var_password, var_email,1);

    set var_user_id = LAST_INSERT_ID();
    if (var_user_id) > 0 THEN
        insert into individual_user ('user_id') values (var_user_id);
        COMMIT;
    ELSE
        ROLLBACK;
    END if;    
END;

Это DDL для двух таблиц:

Таблица пользователей


CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `login` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `user`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `login` (`login`),
  ADD UNIQUE KEY `email` (`email`);

ALTER TABLE `user`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=101;

Таблица индивидуальных_пользователей


CREATE TABLE `individual_user` (
  `id` int(11) NOT NULL,
  `user_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `individual_user`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`);



ALTER TABLE `individual_user`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=51;

ALTER TABLE `individual_user`
  ADD CONSTRAINT `individual_user_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`);

...