问题标签 [database-agnostic]

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.

0 投票
1 回答
83 浏览

perl - 使用 DBIC 提取日期部分,同时保持查询数据库不可知

我在生产中使用 MySQL 数据库,并在运行测试时使用 SQLite 数据库。我的应用程序的一部分用于收集一年的每月统计数据。我已经成功地做到了这一点,但是它的代价是无法自动化测试,因为我在查询数据时使用了 MySQL 特定的函数:

注意我正在使用YEARMONTHMySQL 函数。

我知道一种方法可以替换 where 子句来消除 MySQLYEAR函数的使用,如下所示:

使用推荐的方式使用 DBIC 查询日期字段

但是我对如何处理该group_by子句以及如何使这个字段日期值按月数据库不可知的分组感到困惑。想知道是否有人有任何想法?

谢谢!

0 投票
6 回答
809 浏览

sql - 为每个 (Col1,Col2) 选择最大值

让我们假设下表:

我想要一个 SQL 查询,它将返回以下内容:

所以 a ORDER BY time DESC,它按不同的名称分组,并按不同的子名称分组。

这可能吗?我正在寻找一种不是特定于 DBMS 的解决方案 - 可以在大多数 DBMS 中运行的解决方案。

0 投票
1 回答
1073 浏览

scala - 光滑的通用和驱动程序无关

基本上我想要实现的是以下组合:

Slick 3.0.0 数据库不可知论Slick 3 可重用通用存储库

实际上,我尝试了很多,但我根本无法让它工作。

现在我们已经有一个问题了:

def createTable = all.schema.createdropTable...->相同schema,虽然我之前导入了驱动程序,但在这里无法解决。

但是,当我将其子类化时,会出现更大的问题:

这是代码

这显然不会编译,因为我不能通过NodeTableas T,但可以了解我想要实现的目标。

你知道如何解决这个问题吗?我还尝试使用伴随对象,将其BaseTable移出BaseModel并尝试加载simpleDriver...但看起来该功能在最近的版本中已从 Slick 中删除:(

0 投票
1 回答
706 浏览

constraints - jOOQ:禁用约束的与数据库无关的方法

我想知道是否有办法以不可知的方式在 jOOQ 中为不同的数据库禁用数据库约束。例如,在 MySQL 和 PostgreSQL 中禁用外键约束有很大不同:

MySQL

PostgreSQL

实际上不太确定,但可能会涉及禁用触发器。

0 投票
0 回答
631 浏览

c# - 如何编写与 DB 无关的 .NET Core 应用程序?

我正在努力将控制台应用程序从 .NET Framework 4.6.2 移植到 .NET Core 2.0。应用程序需要连接到编译时平台未知的数据库。在完整的框架中,这很容易通过使用DbProviderFactories.NET Core 2.0 中不再存在的机制来实现。

首先,我认为我可以简单地自己动态加载相应的DbProviderFactory代码,使用类似于:

就像在这个库中所做的那样。只要DbProviderFactory在编译时引用包含 的程序集(这违背了动态加载的目的),这段代码就可以很好地工作。

我试图只是System.Data.SqlClient.dll放入应用程序的文件夹,但是该Instance字段是null因为这似乎只是不同runtimes程序集的存根实现。当静态引用时,编译器会输出一个.deps.json指向这些的详细文件。这里只是一个小插曲,给人留下深刻印象:

这不是有人可以手动输入的。

那么在 .NET Core 中开发与 DB 无关的应用程序的好方法是什么?

0 投票
2 回答
65 浏览

database-design - 没有编号的多对多自我参考

我想在两个标签实体之间建立关系,但我不喜欢在 RDBMS 数据库中处理它的典型方式。

喜欢这里:https ://stackoverflow.com/a/35784048/1624397

Book_id1, Book_id2...

或者我正在寻找另一个“坏”示例(无论如何,这在这种情况下是有意义的):

自引用用户friendsWithMemyFriends.

如果我做类似的事情tag_id1tag_id2我要么被迫搜索两者之间是否存在关系,要么被迫保留冗余数据。

有没有替代的解决方案?

优选地,该解决方案与存储无关。

0 投票
1 回答
543 浏览

sql - 在 PostgreSQL 中使用带括号的 LIKE

我尽量做到具体。

目前我使用 MS SQL Server 2012。

简化表 PlanMission 包含这些行

Bold_id 列只是一个唯一的 ID。MCurrentStates 列是一个 VARCHAR 列,其中包含状态作为子字符串。

状态只是一个用括号括起来的字符串,如 [planopen] 所以该列可能是空的或有许多状态,如上面的示例。

如果我这样做,在 MS SQL 中

它不起作用。它只列出 MCurrentStates 中所有非空的行。

它是通过插入解决的[]

这很好用。

现在我也想为 PostgreSQL 做这个。简单的解决方案是删除括号。

但我的问题是如何使用对 MS SQL 和 PostgreSQL 都相同的查询来做到这一点?

0 投票
2 回答
418 浏览

sql - JOIN...ON...JOIN...ON 与 JOIN...JOIN...ON...ON 之间的区别

如果有的话,以下之间有什么区别?

和:

结果似乎是一样的。

由于有评论和答案说第二种语法无效,我会澄清一下——SQL Server、PostgreSQL 和 MySQL 都可以接受这两种变体。我还使用一个平台,该平台拥有自己的 TSQL 实现,该平台将自己的实现转换为它实际连接的提供者之一,第二个变体是默认情况下它如何从可视化编辑器编写代码。

在第一个答案之后,我决定添加一个更复杂的第二种类型的示例:

我已经将表的名称更改为无意义的,因为真实的表是俄语的,无论如何也不会告诉你任何事情,但这是我现在正在处理的查询的一部分。另外,我想指出,我不是在询问优化查询的建议,如果有人发现它不是最理想的,我希望了解语法是否存在实际差异,或者只是表面上的差异。

0 投票
1 回答
137 浏览

mysql - 仅用于配置数据的名称-值-对模型

我读到数据库设计中的名称-值-对模型是一种反模式。本质上,您有一个包含两列的表。一列称为“名称”,另一列称为“值”。假设您正在管理不同区域的 AWS 配置。数据库结构如下:

唯一的用途是检索配置:

另一种解决方案是使用连接。这将消除重复并允许参照完整性。但它变得很麻烦:

table_aws has_many table_states which has_many table_credentials 具有列 access_key、user、pass。这确实消除了重复,但想象一下嵌套连接数量增加的潜力。

鉴于我唯一的用例,名称-值-对模型模型仍然是反模式还是合适?

0 投票
0 回答
44 浏览

java - 用于获取特定 n 条记录的数据库不可知查询

我正在寻找跨不同数据库运行SELECT * FROM TABLE查询的方法。仅举几例:postgres、teradata、mysql、bigquery、redshift。我想找到一种方法来并行化这个查询,这样我就可以产生多个线程来读取数据。每个线程将读取 n 条记录并将其转储到一个文件中(记录的数量是参数化的)。 示例: Table1 有 200 条记录:产生 4 个线程,每个线程读取 50 条记录并写入单独的文件,这总共给了我们 4 个文件。我发现了关于LIMIT/OFFSET的信息,但它不够通用,无法在这些平台上使用。我正在使用 jdbc 结果集。

有什么办法可以实现这一点,还是必须编写特定于数据库的实现?我需要这个的原因可能需要处理来自单个表的数百万条记录,并且我需要将其转储到受 n 条记录限制的文件中。因此,如果我有 100 万条记录并且我的限制大小为 200k,我将得到 5 个文件作为输出。

任何形式的提示/建议/帮助表示赞赏,谢谢。