2016-04-22 136 views
1

我在名爲Student的表中有一個名爲Roll No的列 我想在該列中插入從100到450的值,我想這樣做而不手動插入所有值從100到450.有沒有什麼辦法可以用循環來完成? 謝謝在mysql中使用循環插入值

+0

在此看一看: http://stackoverflow.com/questions/9764621/how-to-insert-multiple-rows-a-loop-needed它使用SQL Server,但你可以得到一個想法,你可以做什麼。 –

+0

你可以寫一個php/python /你想要的任何語言腳本用循環來做到這一點 – fonfonx

+0

我正在使用MySql工作臺,所以我在哪裏寫java代碼循環代碼來執行 – user17422

回答

0

你可以爲它編寫一個簡單的PL/SQL過程。查看PL/SQL'for'循環。

+0

PL/SQL是針對Oracle的,而不是MySQL 。 – Barmar

1

假設您不希望使用任何其他語言,您將不得不創建一個MYSQL過程來完成此操作。

delimiter // 

CREATE PROCEDURE insertproc() 
BEGIN 
    DECLARE i int DEFAULT 100; 
    WHILE i <= 450 DO 
     INSERT INTO students (rollNo) VALUES (i); 
     SET i = i + 1; 
    END WHILE; 
END// 

delimiter ; 

相關SQLFiddle:http://sqlfiddle.com/#!2/a1320/2

看到這個類似的問題,我作爲我的源:MySQL Insert with While Loop

+0

18:29:33 \t CREATE PROCEDURE insertproc()BEGIN DECLARE i int DEFAULT 100 \t錯誤代碼:1064.您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以在第3行使用「'''附近的語法\t 0.016秒 我得到這個錯誤 – user17422

+0

奇怪,我似乎也得到了這個錯誤,但只有sqlfiddle。當我通過MYSQL-CommandLine輸入上述內容時,它工作正常。我認爲用他們的服務定義一個分隔符是個問題。 –

0

這裏是ü希望腳本。我這樣做是在PHP

<?php 
 
$servername = ""; 
 
$username = ""; 
 
$password = ""; 
 
$dbname = ""; 
 

 
// Create connection 
 
$con = new mysqli($servername, $username, $password, $dbname); 
 
// Check connection 
 
if ($con->connect_error) { 
 
    die("Connection failed: " . $con->connect_error); 
 
} 
 

 
echo "Connected successfully"; 
 

 
for ($i = 100; $i <= 450; $i++) { 
 
$sql="insert into student(rollno) values('$i')"; 
 
    $result=mysqli_query($con,$sql); 
 
} 
 
mysqli_close($con); 
 
?>

不要忘記輸入用戶名,密碼等。然後把它保存在一個PHP文件並運行它

+0

他沒有使用PHP。 – Barmar

+0

@Barmar對不起,我沒有注意。謝謝。 – 2016-04-22 22:30:01