1. テーブル名を変更する方法RENAME TABLE ステートメントまたは ALTER TABLE ステートメントを使用してテーブルの名前を変更できます。基本的な構文は次のとおりです。 # RENAME TABLE 構文: テーブル名の変更 tbl_name から new_tbl_name へ [、tbl_name2 から new_tbl_name2] ... # ALTER TABLE 構文: テーブル old_table を変更して、新しいテーブルの名前を変更します。 # 具体例: mysql> テーブルを表示します。 +------------------+ | テストデータベース内のテーブル | +------------------+ |tb1| |tb2| +------------------+ セット内の 2 行 (0.00 秒) mysql> テーブル tb1 の名前を new_tb1 に変更します。 クエリは正常、影響を受けた行は 0 行 (0.03 秒) mysql> テーブル tb2 を変更し、 new_tb2 の名前を変更します。 クエリは正常、影響を受けた行は 0 行 (0.04 秒) mysql> テーブルを表示します。 +------------------+ | テストデータベース内のテーブル | +------------------+ | 新しい_tb1 | | 新しい_tb2 | +------------------+ セット内の 2 行 (0.00 秒) 当然のことながら、テーブル名の変更を実行する場合、古いテーブル (old_table_name) が存在し、新しいテーブル (new_table_name) が存在していてはなりません。新しいテーブル new_table_name が存在する場合、ステートメントは失敗します。 テーブル名の変更操作を実行するユーザーには、元のテーブルに対する ALTER 権限と DROP 権限、および新しいテーブルに対する CREATE 権限と INSERT 権限が必要です。 ALTER TABLE とは異なり、RENAME TABLE では 1 つのステートメントで複数のテーブルの名前を変更できます。 テーブル名をold_table1からnew_table1に変更します。 old_table2 から new_table2 へ、 old_table3 を new_table3 に; 複数のテーブルの名前を一度に変更する場合、名前変更操作は左から右に実行されます。したがって、2 つのテーブル名を交換するには、次のようにします (中間テーブル名が tmp_table であり、存在しないことを前提とします)。 テーブル old_table の名前を tmp_table に変更します。 新しいテーブルを古いテーブルに、 tmp_table を new_table にコピーします。 テーブルの名前を変更することで、テーブルをあるデータベースから別のデータベースに移動することもできます。構文は次のとおりです。 テーブル名を current_db.tbl_name から other_db.tbl_name に変更します。 ALTER TABLE current_db.tbl_name を変更して other_db.tbl_name を変更します。 # 1つのデータベース内のすべてのテーブルを別のデータベースに転送するためのSpliceSQL SELECT CONCAT( 'テーブル名 old_db.', TABLE_NAME, ' を new_db.', TABLE_NAME, ';' に変更します) から 情報スキーマ.TABLES どこ TABLE_SCHEMA = 'old_db'; 実際、MySQL ではデータベースの名前を変更する操作は提供されていません。名前の変更によってデータベースのすべてのテーブルを別のデータベースに転送することで、間接的にデータベースの名前を変更することはできますが、元のデータベースはそのまま残ります。 2. 注記名前変更操作はアトミックに実行され、テーブルのメタデータ ロックを取得する必要があることに注意してください。したがって、RENAME TABLE を実行する前に、テーブルにアクティブなトランザクションがないこと、およびテーブルがロックされていないことを確認する必要があります。メタデータのみを変更すればよいため、大きなテーブルの名前変更も高速です。また、テーブルにトリガーがある場合は、名前を変更してテーブルを別のライブラリに転送することはできません。 実際、RENAME TABLE ステートメントと ALTER TABLE ステートメントにはいくつかの違いがあります。公式ドキュメントによると、主な違いはいくつかあります。
名前変更操作は迅速かつ効率的ですが、実際の運用シナリオではテーブルの名前変更を慎重に検討する必要があります。名前変更操作は問題ないかもしれませんが、オブジェクト間の後続の依存呼び出しで問題が発生する可能性があります。たとえば、テーブル tb1 の名前を new_tb1 に変更し、tb1 に依存するビューと関数がある場合、これらのビューと関数を適切なタイミングで変更しないと、これらのビューと関数を再度呼び出すと、tb1 が存在しないというエラー メッセージが表示されることがあります。これは、これらのビューと関数の定義で tb1 という名前がまだ使用されているためです。さらに、テーブルまたはビューの名前を変更した後は、ユーザー権限に注意してください。ユーザーにテーブルに対する権限が明示的に割り当てられている場合は、新しいテーブルに対する権限を再度付与する必要があります。テーブルに外部キーなどの制約がある場合は、名前変更操作を実行する際に特に注意して慎重に確認してください。 要約:この記事では、テーブル名を変更する際の操作方法と注意事項を中心に紹介します。この記事の要点は、以下のとおりです。 RENAME TABLE ステートメントと ALTER TABLE ステートメントの両方を使用してテーブルの名前を変更できます。 2 つには若干の違いがあり、RENAME TABLE ステートメントの方が推奨されます。 名前変更操作にはメタデータ ロックの取得が必要です。操作を実行する前に、アクティブなトランザクションがないことを確認してください。 テーブルの名前を変更することで、テーブルをあるデータベースから別のデータベースに転送し、間接的にデータベースの名前を変更することができます。 実際の運用シナリオでは、特にビューと関数の依存関係がある場合、テーブルの名前変更は慎重に検討する必要があります。 名前変更操作が完了したら、ユーザー権限と関連する依存関係の問題を確認し、依存関係にあるテーブル名を新しいテーブル名に適時に変更します。 テーブルにトリガーや外部キーなどの制約がある場合は、名前を変更するときに特に注意してください。 名前変更操作は通常数秒で完了します。時間がかかりすぎる場合は、接続状態を確認してください。 上記は、MySQL のテーブル名変更に関する知識のまとめの詳細な内容です。MySQL のテーブル名変更の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: VMware esxi6.5 のインストールと使用の詳細な手順
>>: 光沢のある輝くウェブサイトデザインの感動的なデザイン例
ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...
目次Docker の基本概念Docker インストール プロセス (Centos6.9)カーネルのア...
1. はじめに: mysql8以降は、これまでよく使われていたバージョンと比べてかなり変更点が大きい...
需要: この需要は緊急に必要です!地下鉄のシーンでは、脱出経路を示す矢印を描かなければなりません。こ...
凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...
ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...
目次環境まとめモジュール機能関連文書ソースコード分析CCGame.js CCInputManager...
目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...
vue3コンポーネントの通信モードは次のとおりです。小道具$放出$expose / 参照$属性vモデ...
Postfix は、Linux システム上で電子メールをルーティングまたは配信するために使用される無...
フォームは、動的な Web ページを実装するための主要な外部フォームです。フォームとフォーム フィー...
最近、プロジェクトをアップグレードするために Docker を使用しました。これまで使用したことがな...
1. 何ですかRefs 、コンピューターでは Resilient File System (ReF...
undefined JavaScript では、値が undefined かどうかを判断したい場合は...
日常的なウェブサイトの保守と管理では、多くの SQL ステートメントが使用されます。熟練して使用する...