【发布时间】:2019-03-19 10:29:03
【问题描述】:
CREATE DEFINER=`tmpUser`@`%` FUNCTION `getUniqueIdForTable`(VARCHAR(250)) RETURNS varchar(250) CHARSET utf8mb4
BEGIN
SET @id = MD5(NOW()+RAND());
SET @stmntSTR = CONCAT("SELECT id FROM ",@tablename," WHERE id = @id");
IF NOT isempty(EXECUTE stmnt) THEN #experimental
return getUniqueIdForTable(@tablename);
ELSE
return @id;
END IF;
END
您好,我正在尝试创建一个递归函数来创建一个动态且不重复的 ID。 我的问题是获取 stmntSTR 的结果并检查它的元素
【问题讨论】:
-
如果您尝试动态创建表,我可以 99% 确定您在设计过程中做错了什么
-
我正在动态执行此功能,因为我使用触发器调用它,它需要是唯一的但不应该是自动增量,通常我使用 java 添加 id 但它在触发器中调用