如何将现有的数据库作业全部导入到另一数据库组中(sql 2k)

如何将现有的数据库作业全部导入到另一数据库组中(sql 2k),第1张

最近忙于公司BI软件性能测试,这几天主要测试CUBE采用ROLAP下,PA的并发和稳定性。涉及表和维度,立方:事实表sales_fact_1997,维度表time_by_day;立方:sales。修改内容:删除原来的TIME维度,新建TIME维度,修改SALES立方。

数据插入:

1、事实数据插入:通过DTS加调度实现将sales_fact_1997的数据进行复制。频率为每分钟10000条。主要用到的SQL语句:select top 10000 from sales_fact_1997

2、维度数据插入:通过SQL语句插入数据到time_by_day

测试用到的SQL语句:

1、单条插入

INSERT INTO time_by_day

(time_id, the_date, the_year, month_of_year, quarter,day_of_month)

VALUES ('1101', '1999-10-1', '1999', '10', 'Q4','1')2、单条插入:

INSERT INTO time_by_day

(time_id, the_date, the_year, month_of_year, quarter, day_of_month)

SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)

AS the_year, MONTH(the_date + 1) AS month_of_year, { fn QUARTER(the_date + 1)

} AS quarter, DAY(the_date + 1) AS day_of_month

FROM time_by_day

ORDER BY time_id DESC3、循环插入:

DECLARE @MyCounter INT

SET @MyCounter = 0 /设置变量/

WHILE (@MyCounter < 2) /设置循环次数/

BEGIN

WAITFOR DELAY '000:00:10' /延迟时间10秒/

INSERT INTO time_by_day

(time_id, the_date, the_year, month_of_year, quarter, day_of_month)

SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)

AS the_year, MONTH(the_date + 1) AS month_of_year, { fn QUARTER(the_date + 1)

} AS quarter, DAY(the_date + 1) AS day_of_month

FROM time_by_day

ORDER BY time_id DESC

SET @MyCounter = @MyCounter + 1

END4、插入以时间为变量的数据

DECLARE @MyCounter INT

declare @the_date datetime

SET @MyCounter = 0 SET @the_date = '1999-1-4' WHILE (@MyCounter < 200000) BEGIN WAITFOR DELAY '000:00:10' /INSERT INTO time_by_day (time_id, the_date, the_year, month_of_year, quarter, day_of_month) SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1) AS the_year, MONTH(the_date + 1) AS month_of_year, { fn QUARTER(the_date + 1) } AS quarter, DAY(the_date + 1) AS day_of_month FROM time_by_day ORDER BY time_id DESC / insert into time_by_day (time_id,the_date)values('371',@the_date) SET @the_date = @the_date + 1 SET @MyCounter = @MyCounter + 1 END

MySQL Workbench (GUI Tool) 整个工具中包含一个

Migration Tools,可以实现从access数据库导入架构和数据到MySQL数据库中,你可以按照GUI的步骤一步步进行。

MySQL官方相关的建模与管理工具:

MySQL Workbench (GUI Tool)

MySQL Workbench provides DBAs and developers an integrated tools environment for:

-- Database Design & Modeling

-- SQL Development (replacing MySQL Query Browser)

-- Database Administration (replacing MySQL Administrator)

1 restore filelistonly from disk='D:\LPC\Database\0104_bakbak'

查找文件名:如下面的'Lpcs'和'Lpcs_log'

2 restore database lpc0105

from disk='D:\LPC\Database\0104_bakbak'

with

move 'Lpcs' to 'D:\LPC\Database\lpc0105mdf',

move 'Lpcs_log' to 'D:\LPC\Database\lpc0105_logldf'

恢复数据库到新数据库lpc0105

/usr/local/mysql/bin/

mysqldump

-uroot

-p

--all-databases

allsql按提示输入密码,回车就会开始导出,如果数据库比较大,会很长时间没有显示任何信息,但其实已经开始了。

第一步:

根据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数据库后,选择"文件">>导出>>文本文件

在选择导出后会d出一个窗口,我们通过单击"高级"设置其中的字段分割符为{tab},文本识别符号改成{无},当然还可以进行其他的设置哦

注意:对应的各个文件的文件名取名为对应的表名哦(统一一下,方便后面 *** 作)

2)之后,复制到mysql下的bin所在目录下

第三步:

设法把文本文件中的数据导入到刚才创建的表中,要对应起来哦

主要用到该句:LOAD DATA LOCAL IN FILE 存有数据的文本文件名 INTO TABLE 表名;

下面我们通过该办法一个一个地把数据从文本文件中导入对应的表中

1)site_tabtxt===>site_tab

load data local infile "site_tabtxt" 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_tabtxt===>key_tab

load data local infile "key_tabtxt" into table key_tab;

3)cat_tabtxt===>cat_tab

load data local infile "cat_tabtxt" into table cat_tab;

4)file_tabtxt===>file_tab

load data local infile "file_tabtxt" into table file_tab;

在同一个实例上可以跨库 *** 作

insert into 库名BT(id,name,sex)

select id,name,sex from 库名at

不在同一个实例上需要先导出。

mysql自带工具mysqldump可以导出表at成sql文件,再把文件导入到bt表所在的数据库里。或者用其他第三方工具导出导入。

sqlserver可以添加linkserver,oracle添加dblink都可以直接用别名加库名跨库访问,自身ui也都支持导出再导入。

以上就是关于如何将现有的数据库作业全部导入到另一数据库组中(sql 2k)全部的内容,包括:如何将现有的数据库作业全部导入到另一数据库组中(sql 2k)、怎么把access数据库中的数据全部导入到mysql中、sql 2008 将整个数据库导入进去, 求sql 语句或详细 *** 作步骤!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9529078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存