0
私は最初のMySQL手続きを書いています。私は乱数を生成し、この数値を持つテーブルの値を更新しようとしますが、それが既に存在しない場合に限ります(ユニーク制約のため)。私の手順は次のようになります。手順を実行する際にMySQLプロシージャ乱数生成
create procedure generaterc()
begin
declare _rc char;
declare _id int;
set _id = 1;
while _id < ((select count(*) from patient) - 1) do
begin
set _rc = cast(FLOOR(1000000000 + (RAND() * 8999999999)) AS char);
select _rc;
if not exists(select * from patient where patient.rc = _rc) then
update patient set rc=_rc where id=_id;
set _id=_id+1;
end if;
end;
end while;
end
私はこのエラーを得た:データの切り捨て:データ長すぎる行の列「_RC」の私のRC柱8はVARCHAR(255)ですが、私はこれを推測します問題の核心ではありません。助言がありますか?
ありがとうございました。
ありがとうございました!魅力のように動作します。 _rc変数を正確に10文字長くする必要があるため、uuid_short()関数を使用することはできません。 –