MySQL には、説明している方法でテーブルに自動的にプレフィックスを付ける方法はありません。@MichaelBerkowskiは正しいです。
私が提案できる最善の方法は、接頭辞付きのテーブル名のフロントエンドとして、接頭辞なしの名前を使用して、更新可能なビューを持つ 2 つ目のデータベースを作成することです。
次に例を示します。
mysql> CREATE DATABASE test;
mysql> CREATE TABLE test.prefix_mytable (id INT PRIMARY KEY, x VARCHAR(20));
mysql> CREATE DATABASE test2;
mysql> CREATE VIEW test2.mytable AS SELECT * FROM test.prefix_mytable;
接頭辞なしの名前を使用して挿入できるようになりました。
mysql> INSERT INTO test2.mytable (id, x) VALUES (123, 'abc');
データが元のテーブルに挿入されたことを確認するには、次のようにします。
mysql> SELECT * FROM test.prefix_mytable;
これを行うと、データベースに対して SQL スクリプトを実行できtest2
、すべての INSERT が元のテーブルに問題なく到達するはずです。
ビューを作成する必要があるテーブルが多数ある場合は、CREATE VIEW ステートメントの作成を自動化できます。
mysql> SELECT CONCAT('CREATE VIEW test2.', REPLACE(TABLE_NAME, 'prefix_', ''),
' AS SELECT * FROM test.', TABLE_NAME, ';') AS _sql
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='test' AND TABLE_NAME LIKE 'prefix\_%';