現在の年と月(2011-09
)に基づく名前のテーブルを作成しようとしていますが、MySQLはこのようには見えません。mysql(5.1)>変数からテーブル名を作成
SET @yyyy_mm=Year(NOW())+'-'+Month(NOW());
CREATE TABLE `survey`.`@yyyy_mm` LIKE `survey`.`interim`;
SHOW TABLES IN `survey`;
+-----------+
| interim |
+-----------+
| @yyyy_mm |
+-----------+
私は@yyyy_mm
周りティックなしCREATE TABLE;
をすれば、私は一般的な構文エラーを取得します。
@yyyy_mm
は、に解決されます。
識別子は変数ではありません。変数は識別子ではありません。これには、 "動的SQL"を使用する必要があります。これは、私が扱ってきたすべてのデータベースではうんざりです。 –
http://stackoverflow.com/questions/190776/how-to-have-dynamic-sql-in-mysql-stored-procedureおよびhttp://stackoverflow.com/questions/929244/mysql-create-table-ダイナミックデータベース名とhttp://stackoverflow.com/questions/5530755/mysql-variables-storing-database-name –