【问题标题】:Import SQL query from MYSQL to MsAccess从 MYSQL 导入 SQL 查询到 Ms Access
【发布时间】:2013-11-29 21:33:32
【问题描述】:

我需要创建 sql 语句以将现有 MySQL 数据库中的数据导入 MsAccess。 有没有人对我能做到这一点的最佳方式有任何想法?

这是我用来在 MySQL 中创建数据库的代码,只是为了了解表等。

 CREATE DATABASE IF NOT EXISTS horsedb;
 USE horsedb; CREATE TABLE `horse`.`horse` (
`HORSE_id` INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(45) NULL,
`Colour` VARCHAR(45) NULL,
`Sire` INT NULL,
`Dam` INT NULL,
`Born` YEAR NULL,
`Trainer_id` INT NOT NULL, 
PRIMARY KEY (`HORSE_id`))
ENGINE = InnoDB;

USE horsedb; CREATE TABLE `horse`.`showsite` (  
`show_id` INT NOT NULL AUTO INCREMENT,  
`Name` VARCHAR(45) NULL,
`Address` VARCHAR(45) NULL,
PRIMARY KEY (`show_id`));

USE horsedb; CREATE TABLE `horse`.`judge` (  
`Judge_id` INT NOT NULL AUTO INCREMENT,  
`Name` VARCHAR(45) NULL,  
`Address` VARCHAR(45) NULL, 
PRIMARY KEY (`Judge_id`));

USE horsedb; CREATE TABLE `horse`.`event` (
`Event_id` INT NOT NULL AUTO INCREMENT,
`Show_id` INT NOT NULL, 
`Event_name` VARCHAR(45) NOT NULL,
`Judge_id` INT NOT NULL,
PRIMARY KEY (`Event_id`),
INDEX `show_id_idx` (`Show_id` ASC),
INDEX `judge_id_idx` (`Judge_id` ASC),
CONSTRAINT `show_id`
FOREIGN KEY (`Show_id`)  
REFERENCES `horsedb`.`showsite` (`Show_id`)  
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `judge_id`    
FOREIGN KEY (`Judge_id`)    
REFERENCES `horsedb`.`judge` (`Judge_id`)  
ON DELETE NO ACTION
ON UPDATE NO ACTION);

USE horsedb; CREATE TABLE `horse`.`entry` (
`Event_id` INT NOT NULL AUTO INCREMENT, 
`horse-id` INT NOT NULL, 
`Place` INT NULL, 
INDEX `horse_id_idx` (`Horse_id` ASC),
CONSTRAINT `horse_id`    
FOREIGN KEY (`Horse_id`)
REFERENCES `horsedb`.`horse` (`Horse_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

USE horsedb; CREATE TABLE `horse`.`prize` ( 
`Event_id` INT NOT NULL AUTO INCREMENT, 
`place` INT NULL,  
`money` INT NULL, 
 ));

USE horsedb; CREATE TABLE `horse`.`trainer` (  
`Trainer_id` INT NOT NULL AUTO INCREMENT,  
`Name` VARCHAR(45) NULL, 
PRIMARY KEY (`Trainer_id`));

【问题讨论】:

  • 您是要使用 access 中的数据,还是要移动整个数据库以进行访问? (只是广告编辑...MSAcess 使用它自己的 SQL 风格,与其他语言不太匹配。您将重写大多数 queires。从关系数据库到访问似乎有点倒退)
  • @Twelfth 您的评论表明 Access 不是“关系数据库”。你真的相信吗?
  • @GordThompson - 不,只是建议任何其他关系数据库访问会导致大量返工,充其量只是“降级”......它是比数据库更好的数据访问工具。

标签: mysql sql ms-access


【解决方案1】:

将 MySQL 表传输到 Access 中最直接的方法是安装 MySQL ODBC 驱动程序 (MySQL Connector/ODBC),然后使用 ODBC 连接从 MySQL 导入(而不是链接)表。有关更详细的说明,请参阅:

Using Connector/ODBC with Microsoft Access

【讨论】:

  • 我已经做到了,我很想知道是否有从 mysql 到访问导入的 sql 查询转换,而不是使用向导而不是代码的迁移/导入
  • @user2991848 有第三方工具声称可以执行从一种 SQL 方言到另一种 SQL 方言的转换(例如,一个专门提到 AccessMySQL 的 here)。如果这样的工具按照宣传的那样执行,那么我想您可以使用 mysqldump 将 MySQL 数据库“导出”到 .sql 文件,使用该工具将 MySQL SQL 语句转换为它们的 Access 等效项,然后将结果用于“将数据导入 Access。但是,鉴于这种转移通常是一次性的,“向导”方法似乎更可取(至少对我而言)。
猜你喜欢
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
相关资源
最近更新 更多