问题标签 [cross-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - PostgreSQL 中的跨数据库查询
我正在尝试在 Postgres 中构建查询。我的背景是 SQL Server,所以我遇到了一些语法挑战。我的查询需要在两个单独的服务器上访问两个单独的数据库。我需要在数据集之间进行连接。本质上,我在 db1 中有一个包含用户登录活动的表。每次用户登录网站时都会添加一个条目。在 db2 上,我有一张购买表。对于每一天,我需要查看:有多少人登录以及有多少登录用户进行了购买。
我的表如下所示:
如果我的采购表上有一个日期字段,这将很容易。但事实并非如此。所以,目前,我正在尝试以下方法:
如何在 Postgres 中获取每天的登录和购买次数?谢谢!
sql - 另一个数据库中的 SQL 外键
我目前正在工作中创建一个数据库,该数据库本质上是另一个数据库的子数据库。当我们的客户获得我们的软件时,他们会获得一个数据库,我们称之为 MasterBase。该数据库包含两个不同的较小数据库的架构,我们称它们为 MasterC 和 MasterF。
我的工作是获取与 MasterF 相关的所有模式并将它们放入自己的数据库中。问题是 MasterC 中有很多对表和视图的引用。为了解决这个问题,我将添加一个将 MasterF 与 MasterC 配对的属性,以便在我的 .NET 解决方案中我应该能够执行以下操作:
表 tableName....(在 MasterF 中创建的表) 参考 .... MasterC.dbo.tableC(在 MasterC 中的表)
但是,在 SQL 中,这会引发错误:不支持 MSG 1763 跨数据库外键引用。
我读过最常见的解决方法是添加一个触发器,但是看到这不是那么安全,并且有很多这样的实例我想知道是否有另一种方法,也许是存储过程或类似的东西。
如果触发器真的是最好/唯一的方法,我必须为每个有这个问题的表添加一个触发器,我将如何编写这个触发器,我知道一点 SQL,但几乎不精通。
请帮忙!
sql - PostgreSQL 在数据库之间替换表
在一个网站上,我有一些在临时数据库上工作的脚本。在脚本开始之前,我从生产数据库中删除并重新创建临时数据库。在该过程结束时,我想使用临时数据库中这些脚本的结果更新生产数据库,但保留脚本运行时发生的修改(几个小时)。
我知道在 postgreSQL 中没有实现替换,但我发现这个解决方案对我有用:How to UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) in PostgreSQL?
我的问题是,对于这个解决方案,我必须将两个数据库链接在一起,据我所知,这也没有在 postgreSQL 中实现,所以我必须将表从临时数据库复制到实时数据库,但我必须更改同时表的名称以防止重复值或防止不必要的更改。我有大约 30 个表,但其中只有大约一半是由脚本修改的,所以如果我可以限制这些表的工作,那就太好了。据我所知,这是将临时数据库中的 pg_dump 到文件中并将它们插入到生产表中的唯一方法,但这不是太优雅的解决方案,而且它可能也太慢了。
我怎样才能有效地解决这个问题?
我在 Linux (Ubuntu) 上有 postgreSQL 8.3 和 root 访问权限。
php - 在另一个表 php 中获取正确的信息
伙计们!
我有这个数据库 *table: post
其中 post_id 是作者的 id(谁写的帖子)
我有这个数据库 *table: author
我的页面是这样的:
使用上面的代码,我可以获得“post”数据库中的所有帖子。这很好用。但我无法从发帖者那里得到头像。我怎么能做到这一点?
清单:
•我尝试了( if ) 函数,但对我不起作用。•我尝试使用 id_post 创建会话,但只显示数据库中的最后一个或第一个头像。
我需要类似的东西:
if (post) post_id = (author) post_id 显示关于作者的正确信息。
postgresql - PostgreSQL:如何定期将许多表从一个数据库复制到另一个
我有两个数据库在同一个 PostgreSQL 9.3 服务器上运行(在 Windows 上运行)。这两个数据库具有完全相同的结构:相同的表、相同的键、相同的约束等;唯一的区别是数据会定期从一个移动到另一个。可以把它想象成一个包含客户和订单信息的数据库,其中每周与客户相关的数据(例如,2 年)从一个转移到另一个。
有没有一种快速的方法来创建组合新旧数据库中的数据的表?就像是:
在数据库的 170 个表中的大约 25 个上运行。
我看到的两个关键问题是:
1) PostgreSQL 并不真正允许跨数据库查询。外部数据包装器或数据库链接(如此处所述:可能使用 postgres 执行跨数据库查询?)使用起来非常麻烦,因为(如果我理解正确的话)我必须预先声明我希望访问的表的整个结构。
2)我需要找到一种方法来自动化它,以便我可以为我需要的 25 个表中的每一个自动编码,并且它每周运行一次。
只要它可以有效地自动化,我对如何完成(Pentaho-Kettle、命令脚本、sql 脚本等)没有任何偏好。
谢谢!
sql-server - 跨数据库安全
我有 2 个数据库 X&Y。我在 X 上有一个用户,需要通过 X 中的视图访问 Y 中的表。X 有一个用于访问 Y 上的表的同义词。我需要用户访问视图,而不是访问同义词(我通过 DENY GRANT 实现了这一点),不直接访问 Y 数据库中的表(GRANT 权限没有帮助)。两个数据库都在 SQL Server-2012 中的同一实例上。有没有办法在同一个实例上连接服务器是不可能的。
User->Database X->View->Synonym->Database Y->Should see Data User->Database Y->Table->Should not see Data
ruby-on-rails - Rails 多选枚举
我想在任意模型上实现一个可枚举的多选字段,而不在数据库中定义选项。这在可以以多种方式对对象进行分类但您希望限制可用类别的任何情况下都非常有用。用户角色将以这种方式很好地实现,因为它允许用户拥有多个角色而不依赖于数据库来定义这些角色(换句话说,您将避免硬编码值依赖于动态数据库的反模式数据)。
我已经在网上寻找解决此问题的方法,但没有找到任何提及可枚举的多选 gem 或代码实现的内容,而且我对 Rails 还是有点新鲜。任何帮助是极大的赞赏!
visual-studio-2012 - SSDT 项目无法引用跨数据库触发器 - 警告 SQL71502
我有两个 SQL 2012 DB - 一个有一个带触发器的表,另一个有一个禁用该触发器的过程。
我创建了一个带有 2 个数据库项目的 SSDT 解决方案,每个数据库一个。对于第二个数据库,我添加了一个指向第一个数据库的数据库引用,以便我可以引用对象 - 但是我的过程中的行:
提出警告:
SQL71502 过程:[dbo].[CrossDbTriggerCall] 具有对对象 [dbo].[MyTrigger] 的未解析引用。
我能够在 Visual Studio 2012 SSDT 和 Visual Studio 2013 Ultimate 中始终如一地重现此行为。
cakephp - 如何使用 cakephp3 在查询中使用不同的数据源?
我正在开发一个有 3 个不同数据源的 cakePHP3 项目。我有一个主模型,称为应用程序,它应该hasOne()
与两个具有不同数据源的模型作为模型应用程序有两个关联。我已经创建了这两个模型,并将两个模型表指向它们的数据源defaultConnectionName()
。
现在我hasOne()
向我的 ApplicationsTable 对象添加了两个关系,并在尝试Applications->get()
. 这很清楚,因为在 SQL 语句中它们不是 FROM 和 JOIN 部分的数据源的任何说明,例如SELECT * FROM datasource1.myTable
我查看了 cakephp 框架 ORM/Query 类,而 Query 对象似乎只有一个数据源连接作为类属性。
有没有办法使用 cake ORM 在数据检索中使用不同的数据源,或者我应该在这里使用自定义查询?
提前致谢!
database - 使用 postgres_fdw 进行跨数据库查询
我有一个运行多个数据库的 localhost Postgres 9.3 服务器。其中之一是 Travelingo_data。它安装了扩展 postgres_fdw 和 postgis。
我想做的是从同一服务器上的另一个数据库运行一系列查询,并将这些查询与 Travelingo_data 中的插入相结合。
我认为 postgres_fdw 扩展完全可以用于这个目标因此,我从 de Travelingo_data 提示符在 PSQL 控制台中执行了以下代码
top10nl 数据库包含我要选择并插入到 Travelingo_data 表中的数据
它是同一台服务器,始终是同一用户
外部表中定义的列与数据库top10nl中的原始现有表完全相同
首先,任何人都可以检测到任何错误的参数吗?其次:我在外部表或服务器的 PGAdmin 中看不到任何引用。我应该在哪里看到列出的外部表?我希望在 Travelingo_data 的表列表中看到一个名为 fg_punt 的外部表(我可以从中选择数据),但是没有?