當我們拿到數組之后,變量數組,按照批量插入的SQL語句構造SQL
成都創新互聯公司長期為上千多家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為蘆山企業提供專業的做網站、成都做網站,蘆山網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。
1、
#1045
-
Access
denied
for
user
'root'@'localhost'
(using
password:
NO)
解決方案
在phpMyAdmin中libraries目錄下找到config.default.php文件
165行
下面默認為空
$cfg['Servers'][$i]['password']
=
'';
如果你的mysql數據庫設置了登陸密碼,則在此處添加你的登陸密碼,如我的mysql密碼為123456
則改成
$cfg['Servers'][$i]['password']
=
'123456';
修改后保存(建議重啟下服務器)
方法/步驟
命令行登陸MySQL,進入相應的數據庫,本例是shopping(注:用其他工具也可以,比如Navicat for MySQL)。
輸入查詢表語句查看有哪些表:
select table_name FROM information_schema.tables;
查詢結果有許多表,以shopping開頭的是我自己建立的,其他的是數據庫系統自己建立的。
輸入下面語句,查詢以shopping開頭的數據表:
select table_name FROM information_schema.tables where table_name like 'shopping_%';
輸入下面語句:
Select CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO buy_', substring(table_name,9 ),';' )FROM information_schema.tablesWhere table_name LIKE 'shopping_%';
注意:9表示從“shopping_”后面開始
拷貝出以alter開頭的所有語句,用Navicat for MySQL工具更直觀。
ALTER TABLE shopping__admin RENAME TO buy___admin;ALTER TABLE shopping__adminlog RENAME TO buy___adminlog;ALTER TABLE shopping__article RENAME TO buy___article;ALTER TABLE shopping__basket RENAME TO buy___basket;ALTER TABLE shopping__book RENAME TO buy___book;ALTER TABLE shopping__comment RENAME TO buy___comment;ALTER TABLE shopping__gb RENAME TO buy___gb;ALTER TABLE shopping__gou RENAME TO buy___gou;ALTER TABLE shopping__huo RENAME TO buy___huo;ALTER TABLE shopping__hw RENAME TO buy___hw;ALTER TABLE shopping__logo RENAME TO buy___logo;ALTER TABLE shopping__newsnsort RENAME TO buy___newsnsort;ALTER TABLE shopping__newssort RENAME TO buy___newssort;ALTER TABLE shopping__nsort RENAME TO buy___nsort;ALTER TABLE shopping__pay RENAME TO buy___pay;ALTER TABLE shopping__payonline RENAME TO buy___payonline;ALTER TABLE shopping__pinpai RENAME TO buy___pinpai;ALTER TABLE shopping__ps RENAME TO buy___ps;ALTER TABLE shopping__pub RENAME TO buy___pub;ALTER TABLE shopping__quan RENAME TO buy___quan;ALTER TABLE shopping__rep RENAME TO buy___rep;ALTER TABLE shopping__rule RENAME TO buy___rule;ALTER TABLE shopping__search RENAME TO buy___search;ALTER TABLE shopping__sort RENAME TO buy___sort;ALTER TABLE shopping__sub RENAME TO buy___sub;ALTER TABLE shopping__system RENAME TO buy___system;ALTER TABLE shopping__totime RENAME TO buy___totime;ALTER TABLE shopping__type RENAME TO buy___type;ALTER TABLE shopping__user RENAME TO buy___user;ALTER TABLE shopping__usertype RENAME TO buy___usertype;ALTER TABLE shopping__wrzcnet_ad RENAME TO buy___wrzcnet_ad;ALTER TABLE shopping__wrzcnet_link RENAME TO buy___wrzcnet_link;ALTER TABLE shopping__zp RENAME TO buy___zp;
運行拷貝的語句:
執行完后,在用上面的查詢語句查詢一下:
select table_name FROM information_schema.tables where table_name like 'shopping_%';
發現沒有數據,說明修改成功;修改查詢語句:
select table_name FROM information_schema.tables where table_name like 'buy_%';
以下是批量修改語法
1 UPDATE table_name alias
2 SET (column_name,column_name ) = (
3 SELECT (column_name, column_name)
4 FROM table_name
5 WHERE alias.column_name = alias.column_name)
6 WHERE column_name condition value;
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數據庫改名,可能由于實現的功能不完備(比如,這條命令可能是一個超大的事務,或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數據庫名大致上有以下幾種方案:
一、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怎么批量更改頭 批量修改mysql數據
文章URL:http://vcdvsql.cn/article36/dooogpg.html
成都網站建設公司_創新互聯,為您提供網站改版、面包屑導航、手機網站建設、網站營銷、軟件開發、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯