我正在编写我的第一个 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
执行过程时出现此错误:数据截断:第 8 行的“_rc”列的数据太长。我的 rc 列是 varchar(255),但我想这不是问题的核心。有什么建议么?
非常感谢你。