我有一个Microsoft Access SQL转储,我试图导入使用psql -f选项,但导入时出现错误。那么是否有一种方法可以将此SQL转储转换为支持Postgres格式。SQL导入Microsoft Access SQL转储到Postgres
我已经看到一些工具可以将mdb文件转换为相应的表格,但它们不保留现有转储具有的关系和其他约束,并且我希望在导入中保留这些约束。
# 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]
^
转储包含类似下面
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
. . .
那么,有没有办法,我可以导入数据。
包含您收到的错误会很有帮助。 – Drewness
根据经验,我会告诉你用文本编辑器打开转储文件,并逐个浏览所有语句并修改它们以符合postgresql标准。 –
http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_Access –