防止并发是什么意思?你要改这个字段时禁止其它用户更改和读取?如果是这个意思你可以这样子写set autocommit=0; select * from tableName where id=1 for update; update tableName set name="222" where id=1; commit;
CREATE PROCEDURE sequence(IN seqName varchar(30),OUT val INT) BEGIN
update comm_req set seq_value=seq_value+1 where seq_name=@seqName; select seq_value into val where seq_name=@seqName; END; mysql的存储过程 总是有错,哪位高手帮忙改一下啊?
CREATE PROCEDURE sequence IN seqName varchar(30), val INT OUT asBEGIN
update comm_req set seq_value=seq_value+1 where seq_name=@seqName; select seq_value into val where seq_name=@seqName; END;这样子写应该没错的
CREATE PROCEDURE sequence(IN seqName varchar(30),OUT val INT) BEGIN update comm_req set seq_value=seq_value+1 where seq_name=seqName; select seq_value into val where seq_name=seqName; END; 去掉@符号测试一下 你命名最好不要这样,不知道会不会有错误发生 下面这样子给变量命名好了CREATE PROCEDURE sequence(IN v_seqName varchar(30),OUT val INT) BEGIN update comm_req set seq_value=seq_value+1 where seq_name=v_seqName ; select seq_value into val where seq_name=v_seqName ; END;
select * from tableName where id=1 for update;
update tableName set name="222" where id=1;
commit;
update comm_req set seq_value=seq_value+1 where seq_name=@seqName; select seq_value into val where seq_name=@seqName; END;
mysql的存储过程 总是有错,哪位高手帮忙改一下啊?
IN seqName varchar(30),
val INT OUT
asBEGIN
update comm_req set seq_value=seq_value+1 where seq_name=@seqName; select seq_value into val where seq_name=@seqName; END;这样子写应该没错的
CREATE PROCEDURE sequence(IN seqName varchar(30),OUT val INT)
BEGIN
update comm_req set seq_value=seq_value+1 where seq_name=seqName;
select seq_value into val where seq_name=seqName;
END;
去掉@符号测试一下
你命名最好不要这样,不知道会不会有错误发生
下面这样子给变量命名好了CREATE PROCEDURE sequence(IN v_seqName varchar(30),OUT val INT)
BEGIN
update comm_req set seq_value=seq_value+1 where seq_name=v_seqName ;
select seq_value into val where seq_name=v_seqName ;
END;