2016-08-13 7 views
-1

これはMySQLの私の最初の手順です。私のテーブルからIDカラムを取り出し、それを変数に格納してから1を追加し、新しい値でテーブルを更新しようとしています。 。私がmyFirstProcedure()と呼んだとき、それぞれを1ずつ増やすのではなく、すべてのid値を6に設定します。これを正しくコード化するにはどうすればいいですか?MySQLのクエリを変数に代入して変更する

+0

このストアドプロシージャで何をしたいですか? – valgog

+0

1つの変数と多くの行があることに注意してください。あなたは何をしたいのかを明確に定義する必要があります。すべての行のすべてのIDを更新しますか?特定の行のIDを増分しますか?新しい行の新しいIDを生成しますか?すべての行のすべてのIDの番号を変更しますか? – valgog

+0

店舗には1つのIDのみを保存しますか?次に、すべての行のIDを更新したくないと伝えました。私が言ったように、あなたは何をしたいのかを定義しなければなりません。そして今まで、私は何か意味のある説明を聞くことができませんでした。おそらく解決したい問題が何であるかを定義できますか? – valgog

答えて

2

これは、すべての値を同じ値に設定しているためです。あなたは、ストアドプロシージャで変数をインクリメントすることにより、これを行うことができます。

DELIMITER // 

CREATE PROCEDURE myFirstProcedure() 
BEGIN 

    DECLARE v_maxid; 

    SELECT COUNT(*) INTO v_maxid 
    FROM new_table; 

    UPDATE new_table 
     SET ID = (v_maxid := v_maxid + 1); 
END// 
DELIMITER ; 

注テーブルが空であるので、NULL値に問題がない場合COUNT(*)0を返すこと。

+0

答えを覚えて、構文エラーがあるようです。 – Rubiks

関連する問題