開発データベースを Web プロダクション サーバーにコピーしています。これは、次のようになるまで正常に動作します。
CREATE PROCEDURE sprc_list_user_accounts
(
int_page_number INT,
int_recs_per_page INT
)
BEGIN
DECLARE int_record_first INT;
IF int_page_number = 0
THEN SELECT record_identifier,
name_account,
name_last,
name_first,
flag_disabled
FROM acs_accounts
ORDER BY name_last,
name_first;
ELSE SET int_record_first = ((int_page_number - 1) * int_recs_per_page);
SELECT record_identifier,
name_account,
name_last,
name_first,
flag_disabled
FROM acs_accounts
ORDER BY name_last,
name_first
LIMIT int_record_first, int_recs_per_page;
END IF;
END $$
これは、自分のマシン (Win7/64 MySQL 5.5.24) では問題なく動作しますが、Web マシン (Linux/64 MySQL 5.1.55) では機能しません。厄介なのは、前述の表と手順がすべて問題なく表示されることです。結果は、説明のないあまり役に立たない 1064 です。
正確な応答は
Error
SQL query: Documentation
-- =====
-- LISTS
-- =====
CREATE PROCEDURE sprc_list_user_accounts(
int_page_number INT,
int_recs_per_page INT
) BEGIN DECLARE int_record_first INT;
SELECT COUNT( * )
FROM acs_accounts;
IF int_page_number =0 THEN SELECT record_identifier, name_account, name_last, name_first
FROM acs_accounts
WHERE flag_disabled =0
ORDER BY name_last, name_first;
ELSE SET int_record_first = ( (
int_page_number -1
) * int_recs_per_page ) ;
SELECT name_account, name_last, name_first, flag_disabled
FROM acs_accounts
ORDER BY name_last, name_first
LIMIT int_record_first, int_recs_per_page;
END IF ;
END $$
MySQL said: Documentation
#1064 -
---メッセージの終わり!