我开始编写一个 sql 脚本,我试图为其创建一个使用 2 个整数之间的随机变量创建插入查询的过程
这是我到目前为止所拥有的:
DELIMITER $$
CREATE PROCEDURE REL9()
BEGIN
DECLARE k INT DEFAULT 1;
DECLARE Random INT;
DECLARE Upper INT DEFAULT 9999;
DECLARE Lower INT DEFAULT 1;
WHILE k < 20 DO
SET Random = ROUND(((Upper - Lower -1) * RAND() + Lower), 0);
INSERT INTO `sc_db`.`relations` (`idRelations`, `cdate`, `rel_type`, `port_cdom`, `host_cdom`, `dom_idObjects`, `cdom_idObjects`, `rel_name`) VALUES (NULL, '5555', 'Transitive', 'localhost', 'localhost', 'Random', 'Random', 'IS_IN');
SET k = k + 1;
END WHILE;
END$$
DELIMITER ;
调用该过程时出现外键错误,很可能是由于未正确设置或调用随机变量。这些“随机”键(1 到 9999)确实存在于数据库中。 如何在插入值中包含变量?我在网上搜索过,有些结果说变量可以用@作为前缀,但由于某种原因我得到了一个错误。
感谢任何帮助。
最佳答案
您不是插入随机值,而是插入包含单词Random
的字符串:
[...snip...] 'localhost', 'Random', 'Random', 'IS_IN');
^------^--^------^---
带引号:包含字符 R
、a
、n
等的字符串...
不带引号:名为 Random
关于mysql - SQL 脚本和查询中的随机变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983133/