被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數據庫改名,可能由于實現的功能不完備(比如,這條命令可能是一個超大的事務,或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數據庫名大致上有以下幾種方案:
成都創新互聯公司從2013年創立,是專業互聯網技術服務公司,擁有項目網站制作、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元富拉爾基做網站,已為上家服務,為富拉爾基各地企業和個人服務,聯系電話:13518219792
一、mysqldump 導入導出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導出再往新庫導入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導出(包含的對象:表、視圖、觸發器、事件、存儲過程、存儲函數)
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數據庫 yttdb_old 改名為 yttdb_new,如果數據庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可。或者寫個腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導出來,完了在逐一改完表名后導進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設 MySQL 部署好了后,所有的 binlog 都有備份,并且二進制日志格式還是 statement 的話,那就可以簡單搭建一臺從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉升從機為主機即可。這里只需要從機配置一個參數來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標準化,不推薦。
總結其實針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數據量小,推薦第一種;
數據量大,則推薦第二種;
數據量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日志或其他的方式來把舊庫數據直接讀取到新庫達到改名的目的等等。
五個改mysql數據庫名的方法:
1.
RENAME
DATABASE
db_name
TO
new_db_name
這個。。這個語法在mysql
5.1.7中被添加進來,到了5.1.23又去掉了。據說有可能丟失數據。還是不要用的好。詳見:
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
關閉mysqld
把data目錄中的db_name目錄重命名為new_db_name
開啟mysqld
3.重命名所有的表
CREATE
DATABASE
new_db_name;
RENAME
TABLE
db_name.table1
TO
new_db_name.table1,
db_name.table2
TO
new_db_name.table2;
DROP
DATABASE
db_name;
4.
mysqldump導出數據再導入
mysqldump
-uxxxx
-pxxxx
-h
xxxx
db_name
db_name_dump.SQL
mysql
-uxxxx
-pxxxx
-h
xxxx
-e
“CREATE
DATABASE
new_db_name”
mysql
-uxxxx
-pxxxx
-h
xxxx
new_db_name
db_name_dump.SQL
mysql
-uxxxx
-pxxxx
-h
xxxx
-e
“DROP
DATABASE
db_name”
5.使用Shell腳本重命名所有的表
#!/bin/bash
mysqlconn=”mysql
-u
xxxx
-pxxxx
-S
/var/lib/mysql/mysql.sock
-h
localhost”
olddb=”db_name”
newdb=”new_db_name”
#$mysqlconn
-e
“CREATE
DATABASE
$newdb”
params=$($mysqlconn
-N
-e
“SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
WHERE
table_schema=’$olddb’”)
for
name
in
$params;
do
$mysqlconn
-e
“RENAME
TABLE
$olddb.$name
to
$newdb.$name”;
done;
#$mysqlconn
-e
“DROP
DATABASE
$olddb”
就是方法3的優化版。
SQL中在做查詢時怎樣給某一個字段重命名
MySQL中,如何使用SQL語句來對表中某一個字段進行重命名呢?我們將使用alter table 這一SQL語句。
重命名字段的語法為:alter table 表名 change 字段名 字段新名稱 字段的類型。
現在我們來嘗試把test表中的.t_name字段重命名為t_name_new字段。
1、首先查看一下當前test表的結構
mysql describe test;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| t_id | int(11) | YES | | NULL | |
| t_name | var20) | YES | | NULL | |
| t_password | 32) | YES | | NULL | |
| t_birth | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
2、使用alter table語句來修改字段名稱
mysql alter table test change t_name t_name_new var20);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
3、查看修改過后的結果
mysql describe test;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| t_id | int(11) | YES | | NULL | |
| t_name_new | var20) | YES | | NULL | |
| t_password | 32) | YES | | NULL | |
| t_birth | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
至此,我們可以順利的修改表中字段名稱了。
關于MySQL中使用SQL語句對字段進行重命名,本文就介紹這么多,希望對大家有所幫助,謝謝! ;
文章名稱:MySQL怎么使用重命名,mysql查詢重名
文章URL:http://vcdvsql.cn/article46/hssheg.html
成都網站建設公司_創新互聯,為您提供網站策劃、靜態網站、Google、服務器托管、外貿建站、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯