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 のインストールと使用の詳細な手順
>>: 光沢のある輝くウェブサイトデザインの感動的なデザイン例
Git は vscode に統合されており、git コマンドをいくつか記述しなくても、クリックするだ...
この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...
目次1. 必須属性1. 名前2. バージョン2. 説明情報1. 説明2. キーワード3. 著者4. ...
この記事の例では、Vue がデジタル 3 桁区切り形式をグローバルに実装するための具体的なコードを参...
インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...
XAML レイアウトを使用する場合、インターフェイスを Metro 風にするために、一部のボタンでは...
1. 広告の 85% は未読です<br />解釈: 成功する広告の 15% にどうやって...
<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...
2 日前、Raspberry Pi サーバーを Ubuntu 20 にアップグレードしました。今日...
--ホームページのバックアップ1.txtテキスト2. 画像をスキャンする3. PSDデザイン原画(A...
MySQL公式サイトのダウンロードアドレス: https://dev.mysql.com/downl...
前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...
みなさんこんにちは。今日は Linux コマンド クエリ アプレットでの WePY クラウド開発の実...
目次自動インクリメント ID を更新する理由は何ですか?質問解決方法これは私が知っている問題ですが、...
通常、開発プロセスでは、インターフェイス要求の成功または失敗は httpcode に基づいて決定され...