· 7 years ago · Feb 19, 2019, 10:08 PM
1Here is the SQL:
2
3SET @DB_DATABASE_NAME = "test_db";
4SET @DB_TABLE_NUMBERS = "name_number";
5
6SET @cmd = CONCAT('DROP DATABASE IF EXISTS ', @DB_DATABASE_NAME, ';');
7PREPARE stmt FROM @cmd;
8EXECUTE stmt;
9DEALLOCATE PREPARE stmt;
10
11SET @cmd = CONCAT('CREATE DATABASE IF NOT EXISTS ', @DB_DATABASE_NAME, ';');
12PREPARE stmt FROM @cmd;
13EXECUTE stmt;
14DEALLOCATE PREPARE stmt;
15
16# USE @DB_DATABASE_NAME;
17
18# SET @cmd = CONCAT('USE ', @DB_DATABASE_NAME, ';');
19# PREPARE stmt FROM @cmd;
20# EXECUTE stmt;
21# DEALLOCATE PREPARE stmt;
22
23# SET @cmd = CONCAT('
24CREATE TABLE IF NOT EXISTS '@DB_DATABASE_NAME'.'@DB_TABLE_NUMBERS'
25(
26 `nn_id` INT PRIMARY KEY AUTO_INCREMENT,
27 `nn_name` VARCHAR(64) CHARACTER SET utf8,
28 `nn_number` VARCHAR(18) CHARACTER SET utf8
29);
30'
31
32# PREPARE stmt FROM @cmd;
33# EXECUTE stmt;
34# DEALLOCATE PREPARE stmt;
35
36
37Here is the error:
38
39ERROR 1064 (42000) at line 22: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''@DB_DATABASE_NAME'.'@DB_TABLE_NUMBERS'
40(
41 `nn_id` INT PRIMARY KEY AUTO_INCREMEN' at line 1