declare @sql varchar(max); declare @now datetime; set @now = now(); set @sql = ' select * from msg_result_'+ DATE_FORMAT(@now, '%Y%m') ' ' EXEC (@sql);
테이블명이
msg_result_202101
msg_result_202102
이런식으로 자동으로 생성되는게 있어서 동적으로 해봤는데.. 안되네요 ㅠㅠ 뭐가 잘못된걸까요..
안녕하세요~ 동적쿼리 사용하는 방법을 찾아서 mariadb 에서 해봤습니다.
MariaDB [test]> create table msg_result_202101 (a varchar(20)); Query OK, 0 rows affected (0.005 sec) MariaDB [test]> insert into msg_result_202101 values ('result1'); Query OK, 1 row affected (0.001 sec) MariaDB [test]> set @sql = concat ('select * from msg_result_',DATE_FORMAT(now(), '%Y%m')); Query OK, 0 rows affected (0.000 sec) MariaDB [test]> prepare stmt from @sql; Query OK, 0 rows affected (0.000 sec) Statement prepared MariaDB [test]> execute stmt; +---------+ | a | +---------+ | result1 | +---------+ 1 row in set (0.000 sec)