を考えてみましょう:変数に基づいてスキーマを選択するにはどうすればよいですか?
SET @PREFIX='DEV_';
SET @REFRESHDB=CONCAT(@PREFIX,'Refresh');
CREATE TABLE @REFRESHDB.`Metadata`
(
`Key` VARCHAR(30) NOT NULL,
`Value` VARCHAR(30) NOT NULL,
PRIMARY KEY (`Key`)
) ENGINE = InnoDB;
INSERT INTO @REFRESDB.`Metadata` (`Key`, `Value`) VALUES ("Version", "0");
をこれは有効ではないようです:MySQLはして戻ってくる:
あなたのSQL構文でエラーが発生しています。私の知る限り、私はthe documentationに従って正しく物事をやった言うことができるようにREFRESHDB.`Metadata`
@」付近に使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください。しかし、MySQLは許可されていないと言います。これは、MySQLのいくつかの制限(識別子としての変数の使用を許可しない)なのでしょうか?
変数が使用できる変数コントロールに何が割り当てられるのかわかりません。 –
'@ REFRESHDB'の値が実際には文字列値ではなく、スキーマオブジェクトであることを意味するオブジェクトとして使用しています。 –
コメントしますか? –