私はSQLの初心者です..オラクルのシーケンスのように動作するプロシージャを作成したいプロシージャを
作成すると、エラーが発生します:1242...助けてください~
ターゲット テーブル
CREATE TABLE id_generator (
seq_currval INT(8) UNSIGNED NOT NULL, org_code varchar(4) not null
);
手順
区切り記号 $$
sp_seq$$ が存在する場合はドロップ プロシージャ
CREATE PROCEDURE sp_seq( IN org_code varchar(4), OUT parma1 VARCHAR(11) )
始める
DECLARE year VARCHAR(1); DECLARE month VARCHAR(2); DECLARE seq_current int; SET year = '5'; SET month = '01'; SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION; SET seq_current = (select seq_currval from id_generator where org_code = org_code); update id_generator set seq_currval = seq_current + 1 where org_code = org_code; COMMIT; SET seq_current = seq_current + 1; select CONCAT(year, month ,seq_current);
END $$
デリミタ;
呼び出し手順の後、エラーが見つかりました: 1242:
CALL sp_seq('1234');
--> エラー: エラー コード: 1242。サブクエリが複数の行を返します