Цель
Я хочу создать следующую таблицу, формат имени таблицы - tbl
+ _
+ date
, но я хочу написать процедуру для создания, когда я ввожу заданный дата.
drop table if exists tbl_20200802 ;
create table tbl_20200802 (index (USERID) )
select * from a;
Попробуйте
DELIMITER //
DROP PROCEDURE IF EXISTS pro_ljj_push_pre_id;
CREATE PROCEDURE pro_ljj_push_pre_id(
IN test_date date
)
BEGIN
set @table_name=CONCAT('tbl_', test_date);
SET @t1 =CONCAT(
'drop table if exists '
,@table_name
,';'
,'\n'
,'create table ', tab_name
, ' (index (USERID))'
,'\n'
,'SELECT * FROM a');
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
--
END //
DELIMITER ;
CALL pro_ljj_push_pre_id('20200802');
1054 - Неизвестный столбец «tab_name» в «списке полей»