2012-02-14 6 views
1

私はphpmyadminで単純なストアドプロシージャを作成しようとしています。最大実行時間に達する単純なストアドプロシージャの作成

しかし、このページは長時間実行されており、実行に最大時間がかかりエラーになります。

これは、テーブルの構造である:

id usr_id message 
1 1 dfsfa 
2 2 fd 
3 1 fsdfsdf 
4 1 fsd 
5 1 fsdvxc 

これは私が実行しようとしている店舗の手順クエリです:

delimiter // 
    create procedure myProc() 
    begin 
     select message from consecutive; 
    end // 
    delimiter ; 

これは私が取得していますエラーです:

Fatal error: Maximum execution time of 300 seconds exceeded in D:\wamp\apps\phpmyadmin3.2.0.1\libraries\import\sql.php on line 119

+0

どのようにストアドプロシージャを呼び出していますか? – James

+0

私はphpmyadminで直接実行しています。それは作成されていません。 – Stranger

+0

ああ、あなたはそれを設定しようとしていて、実際にそれを呼んでいないのですか? – James

答えて

4

これを試してみてください:

DELIMITER $$ 
CREATE PROCEDURE `myProc`() 
BEGIN 
    select message from consecutive; 
END 
+0

私は実際に自分のphpMyAdminでこれを使いました。うまくいきました。 – James

+0

それは働いている。ありがとう、私は非常に基本的なから学ぶことができるいくつかのサイトや書籍を私にお勧めしますか? – Stranger

+1

@Udhay本当に、私が見たすべてのものは、元のコードのものとまったく同じような例を示しています。だから私は本当にあなたを指し示すべきか分からない。しかし、私はそれらがすべて正しいと思うし、実際にphpMyAdminはデリミタを好きではないと思う。しかしここに私が助けてくれることが欲しいものがあります。たぶん、デリミタの部分を無視し、私の例では、それがあなたのために働くことを知っているので、それを使用してください。 http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx – James

0

これがストアドプロシージャ全体の場合は、何もしないのと同じ理由があります。私たちはラインで事のラインを通過した場合:

create procedure myProc() 

consecutive

select message from consecutive; 

から選択すべての行をコード

begin 

の開始を示す手順を作成します。最後は

end 

ご覧のとおり、実際には1つのテーブルからすべてを選択する以外の操作は行われていないため、時間がかかります。

クエリのようなものだった場合、それは通常、次のようになります。

select message 
    from consecutive 
where id = my_passed_variable 

-- do something else... 
+0

私はストアドプロシージャに新しいので、私は非常に基本的なことから学ぶことができるいくつかのサイトや書籍を教えてください。 – Stranger

+1

彼は実際にはストアドプロシージャを設定しようとしているだけで、呼び出すことはありません。 – James

関連する問題