mysql过程什么也不做也没有错误

时间:2019-06-20 09:04:31

标签: mysql if-statement magento insert procedure

我的主要目标是在sql查询中应用其他方式,以便我可以检查是否有admin用户更新该admin用户的密码,以及是否没有admin用户通过脚本创建该admin用户。如果代码是针对magento 1.9的,则是上面的代码

我需要通过mysql执行此操作

delimiter //

create procedure admin_user() 

begin

set @isAdmin := (select count(*) from admin_user where username = 'admin');

-- Only insert rows if the platform was found
if @isAdmin is not null then 

    UPDATE admin_user SET password = '49ecf011a4046493514c9d43bbfdd6e6:Sm4AZH3YkKQP9NEG0XRaUJfFiJxfYPeN' WHERE username = 'admin';

else

    set @salt := 'ls';
    set @pass := CONCAT(MD5(CONCAT( @salt , "admin123") ), CONCAT(":", @salt ));

    INSERT INTO `admin_user` (firstname, lastname, email, username, password, created, lognum, reload_acl_flag, is_active, extra, rp_token, rp_token_created_at)
    VALUES ('admin', 'dev', 'admin@bamba.local', 'admin', @pass, NOW(), 0, 0, 1, 'N;',null,null);

    INSERT INTO `admin_role` (parent_id, tree_level, sort_order, role_type, user_id, role_name) 
    VALUES (0, 1, 0 , 'G', 0, 'Development');

    set @role_id := (SELECT role_id from admin_role where role_name='Development');

    INSERT INTO `admin_rule` (role_id, resource_id, privileges, assert_id, role_type, permission)
    VALUES (@role_id, 'all', null, 0, 'G', 'allow');

    INSERT INTO `admin_role` (parent_id, tree_level, sort_order, role_type, user_id, role_name)
    VALUES (@role_id, 2, 0, 'U', (SELECT user_id FROM admin_user WHERE username = 'admin'), 'admin');

end if;

   end;

//

delimiter ;

-- Execute the procedure
call admin_user();

-- Drop the procedure
drop procedure admin_user;

当查询在执行方面起作用时,其说查询执行了0行受影响。没有任何结果

1 个答案:

答案 0 :(得分:1)

您可以使用此过程。运行此过程时,它会显示以下消息:“ MySQL返回了空结果集(即零行)。(查询花费了0.0005秒。)”,但是当您打开admin_user和其他表时,它会更新或将值插入表格。

delimiter //
create procedure admin_user() 

begin

DECLARE isADMINDATA INT;
select count(*) from admin_user where username = 'admin' INTO isADMINDATA;

if isADMINDATA=0 THEN

    set @salt := 'ls';
    set @pass := CONCAT(MD5(CONCAT( @salt , "admin123") ), CONCAT(":", @salt ));

    INSERT INTO `admin_user` (firstname, lastname, email, username, password, created, lognum, reload_acl_flag, is_active, extra, rp_token, rp_token_created_at)
    VALUES ('admin', 'dev', 'admin@bamba.local', 'admin', @pass, NOW(), 0, 0, 1, 'N;',null,null);
    INSERT INTO `admin_role` (parent_id, tree_level, sort_order, role_type, user_id, role_name) 
    VALUES (0, 1, 0 , 'G', 0, 'Development');

    set @role_id := (SELECT role_id from admin_role where role_name='Development');

    INSERT INTO `admin_rule` (role_id, resource_id, privileges, assert_id, role_type, permission)
    VALUES (@role_id, 'all', null, 0, 'G', 'allow');

    INSERT INTO `admin_role` (parent_id, tree_level, sort_order, role_type, user_id, role_name)
    VALUES (@role_id, 2, 0, 'U', (SELECT user_id FROM admin_user WHERE username = 'admin'), 'admin');

else

  UPDATE admin_user SET password = '49ecf011a4046493514c9d43bbfdd6e6:Sm4AZH3YkKQP9NEG0XRaUJfFiJxfYPeN' WHERE username = 'admin';

end if;
   end;