最後に挿入されたレコードに基づいて列の主キー値を取得したいと思います。ストアドプロシージャmysqlで最後に挿入されたレコードの主キー列の値を取得
create table test
(
id varchar(100) not null primary key,
rmain varchar(100),
rpart bigint
);
:
Delimiter $$
DROP PROCEDURE IF EXISTS insTest$$
Create Procedure insTest()
Begin
Set @rmain := (select trim(concat('DNB', DATE_FORMAT(CURRENT_DATE(), '%y'), DATE_FORMAT(CURRENT_DATE(), '%m'))));
IF ((trim(DATE_FORMAT(CURRENT_DATE(),'%m')) = 01) OR (trim(DATE_FORMAT(CURRENT_DATE(),'%m')) = 1)) THEN
Set @rpart = 1;
END IF;
IF ((trim(DATE_FORMAT(CURRENT_DATE(),'%m')) != 01) OR (trim(DATE_FORMAT(CURRENT_DATE(),'%m')) != 1)) THEN
Set @rpart := (select coalesce(max(rpart),0) from test) + 1;
END IF;
insert into Test (ID, rmain, rpart) values (concat(@rmain,@rpart),@rmain,@rpart);
End$$
DELIMITER ;
してくださいアドバイス下のテーブル構造です。私はlast_insert_ID()
をチェックしましたが、auto_increment
設定のプライマリキー列に対してのみ動作します。事前に感謝...
タグをあなたの質問にアクセスすることができますこの方法でトランザクション分離レベルを設定します。 'mysql'と' tsql'は同じではありません。 – Rahul