У меня есть таблица, ga_sum_1
, с колонкой, created_timestamp
в ней.Когда я выполняю следующий запрос из командной строки mysql:
mysql> select max(created_timestamp) from ga_sum_1;
+------------------------+
| max(created_timestamp) |
+------------------------+
| 2017-11-05 00:59:55 |
+------------------------+
1 row in set (0.00 sec)
И если я делаю то же самое из очень простой хранимой процедуры:
delimiter //
create procedure test()
begin
select max(created_timestamp) from ga_sum_1;
end//
delimiter ;
mysql> call test();
+------------------------+
| max(created_timestamp) |
+------------------------+
| 2017-11-05 00:59:55 |
+------------------------+
1 row in set (0.00 sec)
Но, когда я так жеиз хранимой процедуры:
drop procedure if exists test;
delimiter //
create procedure test()
begin
declare cursor_end condition for sqlstate '02000';
declare finished int default 0;
declare game_id int(11);
declare user_id int(11);
declare game_instance_id bigint(20);
declare currency varchar(15);
declare created_timestamp timestamp;
declare wager decimal(18,2);
declare win decimal(18,2);
-- cursor
declare game_action_csr cursor for select * from game_action_view;
declare continue handler for cursor_end set finished=1;
-- create view dynamically
select max(created_timestamp) from ga_sum_1;
end//
delimiter ;
mysql> call test();
+------------------------+
| max(created_timestamp) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Что я делаю не так в последнем примере?
==== EDIT ====
Некоторые дальнейшие исследования показываютчто это declare created_timestamp
- очевидно, что смущает выбор в столбце с тем же именем!