问题标签 [sql-generation]
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 - 编写 SQL 生成器,我应该读什么?
我很快将要编写一个组件,它采用元数据并从中生成动态 SQL。大多数情况下,我们在谈论 SELECT、INSERT、UPDATE、DELETE 的东西,但我想其中也可能有一些 CREATE/ALTER TABLE 语句。
我确信没有任何现有的 ORM 解决方案符合要求,但除此之外,关于什么在哪里以及如何做的细节仍然有点模糊。
我可以像任何其他开发人员一样编写 SQL 语句,并且过去使用过一点 NHibernate,但我对数据库或 ORM 背后的理论几乎一无所知。我想完成我的准备工作,所以我正在寻找任何建议的阅读或代码。
顺便说一句,我的编码环境是 .NET (C#) 和 SQL Server。
hibernate - How generate the SQL queries that match the JPA Entity CRUD operations at build time with Hibernate
Given JPA annotated Entities, is it possible to generate (i.e. before runtime) the list of queries that will be performed by Hibernate for CRUD operations (performed against EntityManager) ? For named queries it is possible using org.hibernate.hql.QueryTranslator
Any pointer into the Hibernate API will be appreciated.
php - 教义 SQL/表生成失败
我试图让 Doctrine 从我之前使用 YAML 模式创建的一组模型中生成 SQL。使用来自手册的下面的代码,输出应该是一组查询。
但是,这段代码的结果是:
而它应该返回一个带有 SQL 查询的字符串,如前所述。
我还尝试了以下方法:
但这也会返回:
我无法在手册、API 参考或 Doctrine 核心文件中找到解决方案。我希望这里有人知道。
提前致谢。
更新:这不可能是因为这个(旧的?)错误,因为我没有以 A 或 B 开头的表名。
更新:我的 bootstrap.php 看起来像这样:
更新:我改变了行:
到:
但输出
仍然是一个空数组。
mysql - 如何使用 SQL::Abstract 生成 SQL 查询?
如何使用SQL::AbstractWHERE
为该查询生成子句:
SELECT COUNT(*) FROM table WHERE id = 111 AND NOT FIND_IN_SET(type, '1,2,3,4') AND status = 'pending';
包含类似条件的正确方法是WHERE FIND_IN_SET(type, '1,2,3,4')
什么?
sql - 从两列中找到最小值和最大值。生成从 min 到 max 的日期
我在 SQL Server DB 中有表:
我需要做一些将返回的 T-SQL 查询:
结果集中的条目数量等于数据库中表的“Open_date”和“Close_date”列的最小值与相同列的最大值之间的月数。问题是如何从两个日期列中找到最小值和最大值,然后生成从最小值到最大值的日期,然后使用这个临时表(或它将是什么)来计算临时表中每个日期的打开和关闭条目数。
c# - 为什么 EntityFramework 的 LINQ 解析器以不同方式处理外部定义的谓词?
我正在使用 Microsoft 的实体框架作为 ORM,并且想知道如何解决以下问题。我想Product
从Products
集合中获取一些Product.StartDate
大于今天的对象。(这是整个问题的简化版本。)
我目前使用:
执行此操作时ToList()
,例如在查询上使用后,它可以工作并且创建的 SQL 有效:
但是,我想将谓词移动到一个函数以获得更好的可维护性,所以我尝试了这个:
从代码的角度来看,这也适用,因为它返回相同的Product
集合,但这次创建的 SQL 类似于:
过滤器从 SQL Server 移到客户端,使其效率大大降低。
所以我的问题是:
- 为什么会发生这种情况,为什么 LINQ 解析器对这两种格式的处理方式如此不同?
- 我可以做些什么来利用过滤器分开但在服务器上执行它?
sql - “业务对象”如何生成 SQL?
是否有一组 Business Objects 用于生成 SQL 的规则?我刚刚遇到了连接顺序实际上严重影响性能的情况,很高兴知道 BOBJ 使用哪些参数来决定如何对表进行排序。
sql - SQL::Abstract 使用选择查询生成插入
insert into table1(id, text) select (max(id)+1), "Something" from table1
如何使用 SQL::Abstract 或 SQL::Abstract::More 生成此查询?
ef-code-first - EF Code First 向模型中不再存在的查询添加了额外的列
这是我关于 SO 的第一个问题。
我有一个 ASP.NET 4.0 MVC3 项目,它使用 EF Code First 作为 ORM 和 FluentMigrator 进行版本迁移。我有 Message 实体类,如下所示:
没有定义自定义映射,以及 MSSQL Server 2012 数据库表消息:
Link_Id、Collection_Id 和 MessageType 列在该表中,因为我想做一个 TPH 继承(实际上我想做一个 TPT 继承,然后切换到 TPH,我猜它会解决我的问题,但它没有)。
现在我想要 LinkMessage 和 CollectionMessage 类应该是这样的:
所以问题是:即使没有定义继承(即只存在消息实体),当我删除链接导航属性、重建我的项目(甚至重新创建数据库等)并执行简单查询时,var a = DBContext.Messages.ToList();
EF 也会生成以下查询:
为什么它仍然包含 Link_Id?它不再是模型。这将导致继承问题 - 当我使用上面的子类进行 TPH(或 TPT)继承时,应用程序失败并出现错误“无效的列名 'Link_Id1'”。为什么是 Link_Id1?这怎么可能发生?我完全糊涂了。“Collection_Id”列表现正常。这两列是相同的。我尝试重新创建数据库,杀死应用程序的所有进程(甚至重新启动我的电脑),尝试加载以前的修订版并在那里删除 Message.Link_Id 属性,尝试使用数据但没有 - 相同的行为。我试图用谷歌搜索一些东西,但最终一无所获,因为实际上我什至不知道如何进行正确的搜索查询,而我所做的搜索什么也没给我,我正在用它度过第二天......
以下是他们生成的查询和 SQL:
为什么要查询 Link_Id 和 Link_Id1 列?请有人帮助我,我错过了什么?
UPD:当我删除自定义 DBInitializer 并使用 Code First 为我创建数据库时,它会在“消息”表中创建额外的列“Link_Id1”。
sql - 生成随机数据 sql server 2008 (firstName Surname address etc..)
由于需要做一些测试,我需要生成一个包含 400000 条记录的数据库
我用一个简单的方法做到了
我的问题是如何生成某种唯一的名字、姓氏和地址。
请不要将我指向第三方工具,因为我无法使用它们。
非常感谢您的时间