问题标签 [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 投票
2 回答
467 浏览

sql - 数据库不可知论。ANSI SQL 还是 ORM?

我在一个大部分代码都是用 PL/SQL 编写的项目中工作。我们需要重构代码以支持 SQL Server(如果将来可能与数据库无关)。他们决定将 PL SQL 代码转换为 ANSI SQL,但出于某种原因,这对我来说听起来不是一个好主意。

您能说说转换为 ANSI 而不是使用 ORM 的优缺点吗?

谢谢

0 投票
1 回答
793 浏览

sql - 从 Oracle SQL 迁移到 ANSI SQL 的优缺点

我在一个 UI 可以通过 SQL 代码直接访问数据库的项目中工作。该公司有一个框架,我们在其中创建 xml 的 UI 页面,然后对其进行解析并创建 FLEX 页面。如果我们想要来自 DB (Oracle) 的一些数据,我们在 xml 中添加一个 sql 查询(而不是像 WPF 那样使用 datacontext 对象进行数据绑定)。如果我们要添加一些逻辑,后面没有代码,我们调用存储过程。在我们获得数据后,我们需要解析器来完成这项工作。

新要求是使用该框架并创建一个与 SQL Server 兼容的新产品,并且想法是开始将 (Oracle)SQL 查询转换为 ANSI SQL。

有人能告诉我这样做的好处,主要是我们将面临的问题吗?你认为有更好的方法吗?注意:这个框架真的很大,而且有很多产品都建立在它上面,所以经理们并不热衷于把它扔掉(我试过但是.. :))

0 投票
3 回答
6098 浏览

java - 如何在没有域类的 querydsl 中构造查询

在寻找 Java 库以与数据库无关的方式构建查询时,我遇到了很多,包括 iciql、querydsl、jooq、joist、hibernate 等。

我想要一些不需要配置文件并且可以使用动态模式的东西。对于我的应用程序,我在运行时了解数据库和模式,因此我不会有任何配置文件或模式的域类。

这似乎是 querydsl 的核心目标之一,但是通过 querydsl 的文档,我看到了很多使用域类构建动态查询的示例,但我没有遇到任何解释如何仅使用我有关于模式的动态信息。

Jooq 提供了这样的功能(参见:http ://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/ )但是如果我想将注意力扩展到 Oracle 或 MS SQL(我可能不喜欢但需要支持)。

有querydsl经验的人可以告诉我querydsl是否可以做到这一点,如果可以,如何。

如果有人知道任何其他也可以满足我的要求,那将不胜感激。

0 投票
2 回答
17728 浏览

java - 如何从querydsl获得完全物化的查询

我正在尝试使用 querydsl 为动态模式构建动态查询。我试图只获取查询,而不必实际执行它。

到目前为止,我遇到了两个问题: - schema.table 符号不存在。相反,我只得到表名。- 我已经能够得到查询,但它分离出变量并输入“?” 相反,这是可以理解的。但我想知道是否有某种方法可以获得包括参数在内的完全物化查询。

这是我当前的尝试和结果(我正在使用 MySQLTemplates 创建配置):

我得到的是:

我想得到的是:

更新:我想出了这种技巧来实现参数(不理想,希望有更好的解决方案)但仍然无法让 Schema.Table 表示法工作

哈克紧随其后。请建议更清洁的 QueryDsl 方法:

0 投票
2 回答
2440 浏览

sql - 从上一行/下一行 SQL 中获取值

我有一个包含 3 个字段的表。IE

我想要实现的目标......如果可能......使用单个查询(无论有多少子查询)但普通 SQL(没有枢轴,CTE 等)是得到相同的:placeid's transferdate from each row, on the previous行或下一行,以便我可以用它们进行一些计算。我的意思是 :

我已经使用存储过程或函数中的游标甚至使用临时表来实现它,并且我知道如何使用内置递归函数(即 Oracle)来实现它,但我的问题是我需要将它用作报告中的子查询SQL 语句,因此它必须是纯 SQL 代码作为一个语句。

谢谢您的回答

0 投票
1 回答
91 浏览

sql - 如何编写“[column_list] 中没有两个值相等”的条件?

在 SQL 中,一组列必须具有相等值的条件有点重复:

但这还没有“没有两个值可以相等”类型条件的一半那么糟糕:

我可以在不显式比较每对列的情况下重写此查询吗?如果可以,如何?

在一个完美的世界里,我一开始就没有理由这样做。除此之外,适用于 Oracle 11g 中无限数量列的解决方案会很好。我对 DBMS 有一定的灵活性,我愿意接受(建设性的)建议。

0 投票
6 回答
15477 浏览

sql - “group by”会自动保证“order by”吗?

“group by”子句是否自动保证结果将按该键排序?换句话说,这样写就够了吗:

还是必须写

我知道例如在 MySQL 中我不必这样做,但我想知道我是否可以在 SQL 实现中依赖它。有保障吗?

0 投票
1 回答
1035 浏览

c# - 在 C# 中跨数据库查询以获取数据库名称列表

我正在使用带有 C# 的实体框架 6 (EF6)。我正在尝试编写一个与数据库无关的查询来获取所有数据库名称列表。

例如:

与 SQL Server 存在类似的东西

与 MySQL

等等 Postgres、Oracle 等。

所以问题是 EF6 是否提供了一种由特定数据库独立获取此列表的方法。

0 投票
2 回答
692 浏览

database - 相同实体之间的多个连接表

我正在计划一个数据库模式,但我遇到了一种情况,我不知道最好的方法。我真的在寻找我提出的每个解决方案的优缺点列表,然后可能会给出符合最佳数据库实践的建议。

所以,问题是我有两个实体,它们之间有多个多对多关系。这两个表是 Teams 和 People;一个团队由许多人组成,一个人可以在团队中担任一个或多个角色。角色包括团队领导、团队成员、团队追随者等。一个人可能对特定团队拥有多个角色,但理想情况下,这些角色中的一部分是相互排斥的,而其余的则不是。

以下是我考虑过的解决方案:

1) 为每个角色创建一个单独的联结表。每个表中存在一行表示一个人属于一个团队,特定表表示该人在团队中的角色。必须在应用程序级别强制执行互斥角色。

2) 创建一个联结表并在该表上存储一个枚举以指定一个人具有的角色。给定的人员-团队组合在此表中可能有多行,一行代表该人员在团队中的每个角色。某些角色的互斥性必须在应用程序级别强制执行。

3)创建一个单一的联结表,并在表上存储一个布尔标志列表,每个角色一个。每个人-团队组合在表中都有一行,并且标志确定用户在该团队中具有哪些角色。可以在数据库级别强制执行互斥,因为所有互斥角色可以共享表上的单个枚举字段。

4) 创建两个联结表。这是(2)和(1)的一种组合,允许在数据库级别强制执行互斥性。将有一个带有互斥角色枚举的联结表,而另一个联结表(带有枚举)将处理所有非独占角色。

有什么我忘记了吗?哪个选项看起来最自然?

谢谢

0 投票
2 回答
634 浏览

mysql - 数据库 INSERT INTO SET ... WHERE(SELECT ...)

如果表中不存在Admin_User_Role_Id反对值,我正在尝试将我的值插入表中。Admin_Id能不能插啊!

我的表结构:

我尝试过的查询,但没有成功

我认为这是可能的,但我的逻辑是错误的。我应该如何管理此查询才能成功运行!