CREATE DEFINER=`test`@`%` FUNCTION `nextval`(seq_name1 varchar(50)) RETURNS int(11)
BEGIN
DECLARE VALUE1 INTEGER;
UPDATE xuliehao
SET CURRENT_VALUE = CURRENT_VALUE + 1
where seq_name = seq_name1;
SET VALUE1 = 0;
SELECT CURRENT_VALUE INTO VALUE1
FROM xuliehao
WHERE seq_name = seq_name1;
return VALUE1;
END
======
運行的時候有時候會卡住,好像是死鎖了,不知道該怎么解決
加事務也沒加上,不知道mysql的function是否支持事務,該怎么保證
并發的時候取的資料的正確性
uj5u.com熱心網友回復:
mysql 有自增列 也不錯uj5u.com熱心網友回復:
1) mysql的function是否支持事務2) 建議直接使用MYSQL本身的 auto_increment 來實作比較方便,如果是多個表/列中需要參考同一SEQUENCE,則可以考慮創建一個 create table seqA ( s int auto_increment primary key);然后在存盤函式中,往這個表中插入資料得到S的LAST_INSERT_ID()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/81763.html
標籤:MySQL
