http://www.cnblogs.com/ninahan0419/archive/2009/11/18/1605090.html
著作權聲明:該文為本人原創,可以自由轉載,但不得用於商業途徑,並且需保留原作者名和本站地址.
參考資料:
1)mysql入門:http://space.lzu.edu.cn/homeof/usmot/bbs/show.asp?id=85
2)mysql資料類型:http://blog.xinweb.org/?action=show&id=20
3)mysql中文手冊:http://www.linuxforum.net/books/mysqlmanual/manual_toc.html
4)mysql匯入匯出:http://it.yn.cninfo.net/pubnews/doc/read/8742421943220786691/103.oldsystem14.2635/index.asp
背景說明:
由於要做ftp搜尋引擎的新版,即把目前VB+ACCESS+ASP的版本轉換成C+Mysql+PHP版
打算WEB開發和底層開發同時進行
所以得先想辦法把Access中的資料轉到Mysql中
那麼如何?呢?
轉入正題
下面,一步一個腳印開始把Access資料轉換成Mysql的哦
第一步:
根據Access中資料庫的邏輯結構[或者是以前寫好的資料庫設計文檔哦]
在Mysql下設計並建立出對應的資料庫
先看看Access中的幾個表的結構,並進行初步的資料類型轉換哦
site_tab //網站資訊表
欄位名稱 資料類型(Access) 資料類型(Mysql)
id 數字 int
site 文本 char(15)
port 數字 int
user 文本 char(15)
pw 文本 char(15)
acc 是/否 enum('N','Y')
indb 是/否 enum('N','Y')
info 備忘 text
key_tab //關鍵字統計表
key 文本 char(100)
acctime 數字 int
file_tab //檔案表
file Text(100) char(100)
postfix Text(4) char(4)
pid Integer int
ipid Integer int
acctime long int
cat_tab //目錄表
id Integer int
cat Text(100) char(100)
postfix Text(4) char(1) //這個可以考慮刪除掉,因為多餘
pid Integer int
ipid Integer int
acctime long int
下面根據上面的轉換,建立mysql下的資料庫和對應的表項
[注意:上面涉及到的Mysql的資料類型可能選擇地不夠合適,需要日後調整]
先建立庫,取名為falcon_search
create database falcon_search;
建立表site_tab
create table site_tab
(
id int not null primary key,
site char(15) not null,
port int default 21,
user char(15) not null default 'anonymous',
pw char(15) not null default 'falcon',
acc enum('N','Y') default 'N',
indb enum('N','Y') default 'N',
info text
);
建立表key_tab
create table key_tab
(
skey char(100) binary not null unique ,
acctime int default 0
);
建立表cat_tab
create table cat_tab
(
id int,
cat char(100) binary not null,
postfix char(1) binary,
pid int references cat_tab(id),
ipid int references site_tab(id),
acctime int,
primary key(id,ipid)
);
建立檔案表file_tab
create table file_tab
(
file char(100) binary not null,
postfix char(4) binary not null,
pid int references cat_tab(id),
ipid int references site_tab(id),
acctime int
);
//由於檔案重名的情況比較多,所以無須設定主關鍵字
第二步:
資料庫和表都建立好拉,我們現在得想辦法把資料從Access弄到Mysql下
怎麼弄呢?
1)先把Access中的資料匯出為txt檔案[文字檔]
具體辦法:開啟要操作的Access資料庫後,選擇"檔案">>匯出>>文字檔
在選擇匯出後會彈出一個視窗,我們通過單擊"進階"設定其中的欄位分割符為{tab},文本識別符號改成{無},當然還可以進行其他的設定哦.
注意:對應的各個檔案的檔案名稱取名為對應的表名哦(統一一下,方便後面操作)
2)之後,複製到mysql下的bin所在目錄下
第三步:
設法把文字檔中的資料匯入到剛才建立的表中,要對應起來哦
主要用到該句:LOAD DATA LOCAL IN FILE 存有資料的文字檔名 INTO TABLE 表名;
下面我們通過該辦法一個一個地把資料從文字檔中匯入對應的表中
1)site_tab.txt===>site_tab
load data local infile "site_tab.txt" into table site_tab;
ok,成功拉,不過好象有警告哦
我們先用select * site_tab;看看
原來,acc和indb全為空白的
現在我們只要把acc和indb的值更新為'N'就可以拉:
update site_tab set indb="N";
update site_tab set acc="N";
2)key_tab.txt===>key_tab
load data local infile "key_tab.txt" into table key_tab;
3)cat_tab.txt===>cat_tab
load data local infile "cat_tab.txt" into table cat_tab;
4)file_tab.txt===>file_tab
load data local infile "file_tab.txt" into table file_tab;