insert into table_name(a,b,c,d) values(a,b,c,d)
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及玻璃鋼坐凳等,在網(wǎng)站建設(shè)、成都全網(wǎng)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
on duplicate key update d=d+1
需要設(shè)置唯一索引,當(dāng)插入的數(shù)據(jù)與已有數(shù)據(jù)沖突時(shí)(僅插入會(huì)報(bào)錯(cuò)),觸發(fā)update子句
前天我剛回答了相似的問題你參考一下
1.導(dǎo)出4.0.23當(dāng)前數(shù)據(jù)庫數(shù)據(jù),進(jìn)行備份。
2.安裝4.1或5.1進(jìn)行備份數(shù)據(jù)導(dǎo)入。
3.具體操作
linux中升級(jí)MySQL應(yīng)采取的步驟:
1. 進(jìn)行升級(jí)前你應(yīng)先備份當(dāng)前的MySQL安裝。
2. 下載最新linux版MySQL。
3. 升級(jí)MySQL前,必須停止服務(wù)器。
如果服務(wù)器安裝為服務(wù),必須在命令提示符下在命令行中用命令停止服務(wù):
4.當(dāng)從以前至的4.0.23版本升級(jí)到4.1或5.1時(shí),或從Zip文件安裝的MySQL升級(jí)到MySQL Installation Wizard(安裝幫助)安裝的MySQL時(shí),你必須手動(dòng)卸載前面安裝的MySQL服務(wù)。
如果你不想卸載已有的服務(wù),MySQL Installation Wizard(安裝幫助)則不會(huì)正確安裝新的MySQL服務(wù)。
5. 如果你使用MySQL Installation Wizard(安裝幫助),請(qǐng)參考“使用MySQL安裝向?qū)А钡拿枋鰜韱?dòng)幫助。
6. 如果用Zip文件安裝MySQL,應(yīng)提取文件。你可以覆蓋已有的MySQL安裝,建議覆蓋原有的安裝。
7. 重新啟動(dòng)服務(wù)器。,
假設(shè)兩個(gè)表結(jié)構(gòu)完全相同。不同的話就需要指明所有的列。
Replace table2 Select * From table1
假設(shè)表名叫t1, 有id, name兩個(gè)字段,其中id是主鍵,或者是唯一的字段
REPLACE t1 (id, name) VALUES(1, 'alan')
多條情況:
REPLACE t1 (id, name) VALUES(1, 'alan'), (2, 'lstt'), (3, 'ssnl')
原理是:id不存在是就插入一條,存在是就自動(dòng)刪除原來的,再插入新的
所以,REPLACE不能只修改其中的一個(gè)
如果是后者情況,只能先判斷是否存在,再UPDATE了
第一種,很簡單,適用于任何存儲(chǔ)引擎。
1. 下載并安裝好新版本的MySQL數(shù)據(jù)庫,并將其端口改為3307(避免和舊版本的3306沖突),啟動(dòng)服務(wù)。
2. 在新版本下創(chuàng)建同名數(shù)據(jù)庫。
# mysqldump -p3307 -uroot create mysqlsystems_com
3. 在舊版本下備份該數(shù)據(jù)庫。
# mysqldump -p3306 -uroot mysqlsystems_com mysqlsystems_com.bk
Note: 你也可以加上–opt選項(xiàng),這樣可以使用優(yōu)化方式將你的數(shù)據(jù)庫導(dǎo)出,減少未知的問題。
4. 將導(dǎo)出的數(shù)據(jù)庫備份導(dǎo)入到新版本的MySQL數(shù)據(jù)庫中。
# mysql -p3307 -uroot mysqlsystems_com mysqlsystems_com.bk
5. 再將舊版本數(shù)據(jù)庫中的data目錄下的mysql數(shù)據(jù)庫全部覆蓋到新版本中。
# cp -R /opt/mysql-5.1/data/mysql /opt/mysql-5.4/data
Note: 大家也都知道這個(gè)默認(rèn)數(shù)據(jù)庫的重要性。
6. 在新版下執(zhí)行mysql_upgrade命令,其實(shí)這個(gè)命令包含一下三個(gè)命令:
# mysqlcheck –check-upgrade –all-databases –auto-repair
# mysql_fix_privilege_tables
# mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names
Note: 在每一次的升級(jí)過程中,mysql_upgrade這個(gè)命令我們都應(yīng)該去執(zhí)行,它通過mysqlcheck命令幫我們?nèi)z查表是否兼容新版本的數(shù)據(jù)庫同時(shí)作出修復(fù),還有個(gè)很重要的作用就是使用mysql_fix_privilege_tables命令去升級(jí)權(quán)限表。
7. 關(guān)閉舊版本,將新版的數(shù)據(jù)庫的使用端口改為3306,重新啟動(dòng)新版本MySQL數(shù)據(jù)庫。到此,一個(gè)簡單環(huán)境下的數(shù)據(jù)庫升級(jí)就結(jié)束了。
第二種,同樣適用任何存儲(chǔ)引擎。
1. 同樣先安裝好新版本的MySQL。
2. 在舊版本中,備份數(shù)據(jù)庫。
# mkdir /opt/mysqlsystems_bk ; mysqldump -p3306 -uroot –tab=/opt/mysqlsystems_bk mysqlsystems_com
Note: –tab選項(xiàng)可以在備份目錄mysqlsystems_bk下生成后綴為*.sql和*.txt的兩類文件;其中,.sql保存了創(chuàng)建表的SQL語句而.txt保存著原始數(shù)據(jù)。
3. 接下來在新版本的數(shù)據(jù)庫下更新數(shù)據(jù)。
# mysqladmin -p3307 -uroot create mysqlsystems_com
# cat /opt/mysqlsystems_bk/*.sql | mysql -p3307 -uroot mysqlsystems_com ( Create Tables )
# mysqlimport mysqlsystems_com /opt/mysqlsystems_bk/*.txt ( Load Data )
4. 之后的所有步驟與第一種方法的后三步5、6、7相同。
第三種,適用于MyISAM存儲(chǔ)引擎,全部是文件間的拷貝。
1. 安裝。
2. 從舊版本mysqlsystems_com數(shù)據(jù)庫下將所有.frm、.MYD 和.MYI文件拷貝到新版本的相同目錄下。
3.之后的步驟依然同于第一種的后三步。
有多種方法.請(qǐng)參考以下方法.方法一:安裝一個(gè)mysql的客戶端,比如navicat,建好連接,打開要導(dǎo)入的數(shù)據(jù)庫,點(diǎn)擊導(dǎo)入向?qū)?選擇要導(dǎo)入的 數(shù)據(jù),選擇要導(dǎo)入的目標(biāo)表,在最后的選項(xiàng)中選擇附加到已有數(shù)據(jù).方法二:先使用mysq命令行導(dǎo)入新數(shù)據(jù)到一張新表,新表結(jié)構(gòu)與之前表一樣.然后執(zhí)行以下插入語句.假定新表名為new_tb,原表名為old_tb,則insert into old_tb select * from new_tb