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 のインストールと使用の詳細な手順
>>: 光沢のある輝くウェブサイトデザインの感動的なデザイン例
目次1. ステートフック1. 基本的な使い方2. 更新3. 合併を実現する4. 遅延初期化状態5. ...
質問Alibaba Cloud イメージを使用して Docker をインストールすると、次の図に示す...
コンテナの自動起動Docker は、コンテナが終了したとき、または Docker が再起動されたとき...
Oracle と MySQL の高可用性ソリューションについては、以前からまとめたいと思っていたので...
LNMPのようなアーキテクチャを持つウェブサイトは、一般的にPHPフレームワークに基づいて開発されて...
1. 遭遇したいくつかの問題2008 年にパフォーマンス テストを行っていたとき、パフォーマンス テ...
ソフトウェアとハードウェア環境centos7.6.1810 64ビット cat /etc/red...
他の種類のデザインとは異なり、Web デザインは時代の発展とともに常に変化しています。したがって、W...
Nginx ログは、ユーザーの住所の場所や行動プロファイルなどを分析するために使用できます。Elas...
私は長い間問題に取り組み、文法上の問題を何度も確認しました。しかし、後でネットで調べてみたら、突然理...
序文この記事では主に、MySQL ストレージ テーブル エラー「java.sql.SQLExcept...
この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...
デフォルトでは、セルの幅と高さはコンテンツに応じて自動的に調整されますが、セルの幅と高さを手動で設定...
ホーム ページに戻るための支払いカウントダウン ケースの概要: シンプルな js 構文、getEle...
以下は私がまとめた基本的なSQL知識です。主に参考資料として、また将来の他の初心者の助けとして、私自...