修改MySQL數(shù)據(jù)庫名稱的方法如下:
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比興和網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式興和網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋興和地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
1.語句修改法:
RENAME DATABASE db_name TO new_db_name
這個語法在mysql 5.1.7中被添加進(jìn)來,到了5.1.23又去掉了。
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
把data目錄中的db_name目錄重命名為new_db_name
3.重命名所有的表
代碼如下:
4. mysqldump導(dǎo)出數(shù)據(jù)再導(dǎo)入
代碼如下:
5.使用shell腳本重命名所有的表
代碼如下:
括號里是修改name字段數(shù)據(jù) 如果不行就改為
update 表 set `name`=a where `name`=b
試試,如果修改表名用rename或alter,例如
rename table tbname to newname;
或者
alter table test rename test1;
試試看行不行
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數(shù)據(jù)庫改名,可能由于實(shí)現(xiàn)的功能不完備(比如,這條命令可能是一個超大的事務(wù),或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數(shù)據(jù)庫名大致上有以下幾種方案:
一、mysqldump 導(dǎo)入導(dǎo)出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導(dǎo)出再往新庫導(dǎo)入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導(dǎo)出(包含的對象:表、視圖、觸發(fā)器、事件、存儲過程、存儲函數(shù))
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫 yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可。或者寫個腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導(dǎo)出來,完了在逐一改完表名后導(dǎo)進(jìn)去。
三、歷史方案其實(shí)在 MySQL 早期還有一種方法。假設(shè) MySQL 部署好了后,所有的 binlog 都有備份,并且二進(jìn)制日志格式還是 statement 的話,那就可以簡單搭建一臺從機(jī),讓它慢慢追主機(jī)到新的庫名,等確切要更改舊庫的時候,再直接晉升從機(jī)為主機(jī)即可。這里只需要從機(jī)配置一個參數(shù)來把舊庫指向?yàn)樾聨欤簉eplicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標(biāo)準(zhǔn)化,不推薦。
總結(jié)其實(shí)針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數(shù)據(jù)量小,推薦第一種;
數(shù)據(jù)量大,則推薦第二種;
數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進(jìn)制日志或其他的方式來把舊庫數(shù)據(jù)直接讀取到新庫達(dá)到改名的目的等等。
?修改表:
1.修改之添加列:給stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
2.修改之修改列類型:修改stu表的gender列類型為CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
3.修改之修改列名:修改stu表的gender列名為sex:
ALTER TABLE stu change gender sex CHAR(2);
4.修改之刪除列:刪除stu表的classname列:
ALTER TABLE stu DROP classname;
5.修改之修改表名稱:修改stu表名稱為student:
ALTER TABLE stu RENAME TO student;
查看當(dāng)前數(shù)據(jù)庫中所有表名稱:SHOW TABLES;
?查看指定表的創(chuàng)建語句:SHOW CREATE TABLE emp,查看emp表的創(chuàng)建語句;
?查看表結(jié)構(gòu):DESC emp,查看emp表結(jié)構(gòu);
?刪除表:DROP TABLE emp,刪除emp表;