Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

2019년과 같이 MySQL에서 현재 연도의 동적 테이블 이름 생성

<시간/>

연도(2019)와 같은 테이블 이름을 생성하려면 PREPARE 문을 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1959
   (
   UserName varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1959 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('Bob');
Query OK, 1 row affected (0.00 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable1959;

이것은 다음과 같은 출력을 생성합니다 -

+----------+
| UserName |
+----------+
| Chris    |
| David    |
| Bob      |
+----------+
3 rows in set (0.00 sec)

다음은 현재 연도에서 동적 테이블 이름을 생성하는 쿼리입니다.

mysql> set @dynamicQuery = CONCAT('create table `', date_format(curdate(),'%Y'), '` as select UserName from DemoTable1959');
Query OK, 0 rows affected (0.00 sec)
mysql> prepare st from @dynamicQuery;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> execute st;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 올해는 2019년입니다 -

mysql> select * from `2019`;

이것은 다음과 같은 출력을 생성합니다 -

+----------+
| UserName |
+----------+
| Chris    |
| David    |
| Bob      |
+----------+
3 rows in set (0.00 sec)