在MySql中向表中插入随机数据

在MySql中向表中插入随机数据,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,谁能帮帮我吗?我不知道这里有什么问题 如果存在insertRandom,则删除程序; 创建过程insertRandom 开始 声明mytime时间戳; 设置mytime:=“2009-01-01 00:00:00” 开始 测试循环:循环 当我的时间

谁能帮帮我吗?我不知道这里有什么问题

如果存在insertRandom,则删除程序; 创建过程insertRandom 开始 声明mytime时间戳; 设置mytime:=“2009-01-01 00:00:00” 开始 测试循环:循环 当我的时间<现在 我的时间=我的时间+间隔“8小时”; 插入tempdatatemp_val,基准值选择random*110-10,mytime; 端环; 终止 调用insertRandom; 从“临时表格”中选择*;
过程正文中的分号似乎正在终止该语句。我们需要MySQL将CREATE过程视为一条语句,但MySQL正在切掉该语句,当它看到分号时,将看到一条完整的语句

MySQL中的默认语句分隔符是分号;性格可以覆盖默认分隔符;我们使用分隔符语句进行更改

此处的示例临时将语句分隔符修改为两个美元符号字符$$。在过程体中,出现分号字符不会终止语句。。。MySQL将继续读取,直到找到两个美元符号字符。不用说,程序体不应该包含$$

请注意,我们使用DELIMITER语句将分隔符更改回分号字符。我没有检查程序主体是否存在其他语法错误;但有些事情很突出。例如,这看起来是错误的

mytime = mytime + interval '8 hours'; 
这可能应该是SET语句,语法如下:

SET mytime = mytime + INTERVAL 8 HOUR;
在SET语句中,我们可以使用:=代替=作为赋值运算符,因此等价

SET mytime := mytime + INTERVAL 8 HOUR;
对于MySQL存储程序的循环,我们可以做一个循环。。。结束循环并包含一个LEAVE语句,或者我们可以使用WHILE循环,或者

此处记录的语法:


您的代码中有许多错误

请改用此步骤

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertRandom`()
BEGIN
DECLARE mytime timestamp;

    SET mytime := '2009-01-01 00:00:00';
DROP TEMPORARY TABLE IF EXISTS tempdata;
CREATE TEMPORARY TABLE tempdata (temp_val BIGINT, datum timestamp);
 test_loop : LOOP
    IF mytime >= now() THEN
        LEAVE  test_loop;
    END  IF;
        SET mytime = TIMESTAMPADD(HOUR,8,mytime);
        insert into tempdata(temp_val, datum) values((select (rand()*110)-10), mytime);
  END LOOP; 
END$$
DELIMITER ;
然后

call insertRandom();
SELECT * FROM tempdata;

请不要使用错误的图像;请将错误文本翻译成英语,因为本网站仅支持英语。where's waldo的MySQL语法版本。
call insertRandom();
SELECT * FROM tempdata;