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;