1

我正在尝试在数据库中插入数据,以便为每个数字分配一个 ID

table numbers

id | number

1  | 2560
2  | 2561

这持续了 100 个数字。我为 PL/SQL 找到了这个

BEGIN
   FOR v_LoopCounter IN 2560..2660 LOOP
   INSERT INTO numbers (number)
   VALUES (v_LoopCounter);
END LOOP;
END;

也尝试过

BEGIN
   FOR v_LoopCounter IN 2560.2660 LOOP;
   INSERT INTO numbers (number);
   VALUES (v_LoopCounter);
END LOOP;
END;

我如何使用 phpMyAdmin 在 SQL 中执行此操作,因为这就是我可以使用的?我试过了,但我得到了这个错误:

您的 SQL 查询中似乎有错误。下面的 MySQL 服务器错误输出,如果有的话,也可以帮助您诊断问题

我现在也试过了

SELECT * FROM table_name WHERE
BEGIN
       FOR v_LoopCounter IN 2560..2660 LOOP
       INSERT INTO numbers (number)
       VALUES (v_LoopCounter);
    END LOOP;
    END;
4

3 回答 3

0

先试试这个 SELECT a database 否则你会得到 no database selected 错误

DROP PROCEDURE IF EXISTS myFunction;
delimiter $$

CREATE PROCEDURE myFunction()
     BEGIN
             DECLARE i INT DEFAULT 1;
             DECLARE j INT DEFAULT 0;
             DROP TABLE IF EXISTS test;
             CREATE TEMPORARY TABLE test
                 (id int, numbers int);

         WHILE (i<=100) DO
                SET j=i+2560;
                INSERT INTO test VALUES(i,j);
                SET i=i+1;
         END WHILE;

         select * from test;

         drop table test;

 END$$

之后调用程序

delimiter ;

call myFunction();
于 2014-08-12T07:57:04.267 回答
0

--- 你不能在 PHPMyAdmin 中使用 FOR 循环 ---

使用这种方式:-

  1. 打印所有查询并复制。

  2. 将其粘贴到 sql 选项卡中,然后按 GO。

  3. 完毕。


    例子 :-

     str = "";
     for (let i = 8; i < 77; i++) {
         str = str + "HERE IS YOU QUERY YOU WANT... Like DELETE FROM tabel_name WHERE column_id=+i+;\n"
     }
     console.log(str);
    
于 2021-05-04T06:53:11.547 回答
-1

尝试 :

DELIMITER //
BEGIN
   FOR v_LoopCounter IN 2560..2660 LOOP
   INSERT INTO numbers (number)
   VALUES (v_LoopCounter);
END LOOP;
END
//
于 2013-05-14T15:09:56.863 回答