缺少结束声明,设置和uuid

时间:2015-10-11 16:11:31

标签: mysql

我想在SHA512密码中打捞+哈希,用于培训,但我有一个错误,我真的不知道为什么我有它以及它在哪里。

这是我的程序:

delimiter |
create procedure insert_user(in vuser varchar(35), in vpassword binary(64))
begin
    DECLARE salvage binary(16);
    SET salvage = uuid();

    DECLARE salvagedpassword  varbinary(100);
    SET salvagedpassword = concat(vpassword, salvage);

    DECLARE hashed binary(64);
    SET hashed = select SHA512(salvagedpassword);

    insert into tbl_user(username, passowrd, salvage_key)
        values(vuser, hashed, salvage)
end|

错误显示在uuid()之后的昏迷中; 它说:缺少结束

谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

    delimiter |


        drop procedure if exists insert_user |
        create procedure insert_user(in vuser varchar(35), in vpassword binary(64))
    begin
        DECLARE salvage binary(16);
        DECLARE salvagedpassword  varbinary(100);
        DECLARE hashed binary(64);

        SET salvage := uuid();
        SET salvagedpassword = concat(vpassword, salvage);
        select  password(salvagedpassword) into hashed;

        insert into tbl_user(username, password, salvage_key)
                      values(vuser, hashed, salvage);
    end|

    delimiter ;

一些注意事项:

  • 所有declare应该在任何作业之前完成
  • 没有SHA15功能。您可以使用password("plain_password")
  • 我们在插入
  • 中的列名passowrd中有错误输入
  • 我已添加drop procedure if exists以使脚本可执行

希望它有所帮助。