首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL将Microsoft Access sql转储导入Postgres

SQL将Microsoft Access sql转储导入Postgres
EN

Stack Overflow用户
提问于 2014-02-19 23:38:45
回答 1查看 384关注 0票数 0

我有一个微软Access SQL转储,我试图使用psql -f选项导入,但在导入时遇到错误。那么有没有一种方法可以将这个SQL转储转换为支持Postgres格式呢?

我已经看到一些工具可以将mdb文件转换到各自的表中,但它们没有保留现有转储具有的关系和其他约束,我希望在导入时保留这些关系和约束。

代码语言:javascript
复制
# psql -U postgres -f test.sql
psql:test.sql:63: invalid command \Administrators]
psql:test.sql:570: ERROR:  syntax error at or near "Use"
LINE 1: Use [master]
        ^

转储文件包含如下内容

代码语言:javascript
复制
Use [master]
 GO
 EXEC dbo.sp_dbcmptlevel @dbname=N'test', @new_cmptlevel=90
 GO
 IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
 begin
 EXEC [test].[dbo].[sp_fulltext_database] @action = 'enable'
 end
 GO
 ALTER DATABASE [test] SET ANSI_NULL_DEFAULT OFF

 . . . .


 IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ClassOfService_PBX]') AND parent_object_id = OBJECT_ID(N'[dbo].[ClassOfService]'))
ALTER TABLE [dbo].[ClassOfService]  WITH CHECK ADD  CONSTRAINT [FK_ClassOfService_PBX] FOREIGN KEY([PBX])
REFERENCES [dbo].[PBX] ([ID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
. . . 

那么有没有一种方法可以导入数据。

EN

回答 1

Stack Overflow用户

发布于 2014-02-20 00:19:31

您需要将转储加载回MS Access,然后使用工具通过ODBC或类似方式从实时MS Access中提取数据。米伦已经指出several are listed on the PostgreSQL wiki。还有一些通用的ETL工具,如Talend Studio、Pentaho Kettle和CloverETL,用于数据迁移。

如果您只能使用转储,则可能必须手动转换语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21885279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档