说我有一个forms的查询 SELECT * FROM MYTABLE WHERE MYCOL in (?) 我想参数化参数。 有没有一种简单的方法可以在Java中使用JDBC执行此操作,而且可以在不修改SQL本身的情况下在多个数据库上工作? 我发现最接近的问题与C#有关 ,我想知道是否有什么不同的Java / JDBC。
我的一个专栏被称为。 我不能改变这个名字,因为我没有做到。 我是否允许SELECT from FROM TableName做一些SELECT from FROM TableName还是有特殊的语法来避免SQL Server的混淆?
我有一个查询插入使用select: INSERT INTO courses (name, location, gid) SELECT name, location, gid FROM courses WHERE cid = $cid 是否有可能只为插入select“名称,位置”,并设置为查询中的其他东西?
这不应该是一个非常简单的操作? 但是,我看到既没有size()也没有length()方法。
在SQL Server中执行recursion自连接最简单的方法是什么? 我有这样一张桌子: PersonID | Initials | ParentID 1 CJ NULL 2 EB 1 3 MB 1 4 SW 2 5 YT NULL 6 IS 5 而且我希望能够获得仅与特定人员开始相关的logging。 所以如果我通过PersonID = 1请求CJ的层次结构,我会得到: PersonID | Initials | ParentID 1 CJ NULL 2 EB 1 3 MB 1 4 SW 2 而对于EB的我会得到: PersonID | Initials | ParentID 2 EB […]
数据库触发器是一个坏主意? 根据我的经验他们是邪恶的,因为他们可能会导致令人惊讶的副作用,并且难以debugging(特别是当一个触发器触发另一个触发器时)。 通常开发者甚至不会考虑是否有触发器。 另一方面,似乎如果你有必须发生的逻辑加class在数据库中创build一个新的FOO ,那么最简单的地方是放在FOO表上的插入触发器。 我们使用触发器的唯一时间就是设置ModifiedDate等非常简单的事情。
你用什么方法来build模和检索数据库中的分层信息?
什么是SQL中的索引 ? 你能解释清楚吗? 我应该在哪里使用索引?
我从一个典型的Rails应用程序从SQLite切换到PostgreSQL。 问题在于PG的运行规格变慢了。 在SQLite上花费了大约34秒,在PG上花了大约76秒, 比慢了2倍多 。 所以现在我想应用一些技术来使规范的性能与SQLite保持一致 ,而不需要修改代码(理想情况下只需设置连接选项,这可能是不可能的)。 从我头顶上的一些明显的事情是: RAM磁盘(用OSX上的RSpec进行良好的设置很好看) 未logging的表格(可以应用于整个数据库,所以我没有改变所有的脚本?) 正如你可能已经理解,我不关心可靠性和其他(在这里数据库只是一次性的东西)。 我需要充分利用PG,并尽可能快地完成 。 最好的答案将理想地描述这样做的技巧 ,设置和这些技巧的弊端。 更新: fsync = off + full_page_writes = off只减less时间full_page_writes = off秒(〜-16秒)。 良好的开端,但远不及34的目标。 更新2:我试图使用RAM磁盘,但性能增益是在误差范围内。 所以似乎并不值得。 更新3:*我发现最大的瓶颈,现在我的规格运行速度与SQLite的速度一样快。 问题是做了截断的数据库清理。 显然SQLite太快了。 为了“修复”,我在每次testing之前打开一个交易 ,并在最后回滚。 一些数字〜700testing。 截断:SQLite – 34s,PG – 76s。 交易:SQLite – 17s,PG – 18s。 SQLite速度提高2倍。 PG的4倍速度增加。
你将如何在PHP中编写一个准备好的MySQL语句,每次都有不同数量的参数? 这样的查询的例子是: SELECT `age`, `name` FROM `people` WHERE id IN (12, 45, 65, 33) IN子句每次运行时都会有不同数量的id 。 我脑海里有两种可能的解决方法,但是想看看有没有更好的办法。 可能的解决scheme1使语句接受100个variables,并用保证不在表中的虚拟值填充剩余的variables; 多次调用超过100个值。 可能的解决scheme2不要使用准备好的语句; build立并运行查询,严格检查可能的注入攻击。