Tag: sql

如何在运行之前testingSQL Update语句?

在某些情况下,在生产环境中运行UPDATE语句可以节省一天的时间。 然而,borked更新可能比最初的问题更糟糕。 在使用testing数据库之前,有哪些选项可以告诉更新语句在运行之前会做什么?

模拟CREATE DATABASE如果不存在PostgreSQL?

我想创build一个不存在的数据库通过JDBC。 不像MySQL,PostgreSQL不支持create if not exists语法。 什么是完成这个最好的方法? 应用程序不知道数据库是否存在。 它应该检查,如果数据库存在,应该使用它。 所以连接到所需的数据库是有道理的,如果由于数据库不存在而导致连接失败,它应该创build新的数据库(通过连接到默认的postgres数据库)。 我检查了Postgres返回的错误代码,但是我找不到任何相同的代码。 另一种方法是连接到postgres数据库,并检查是否存在所需的数据库并采取相应的措施。 第二个是有点繁琐的工作。 有什么办法可以在Postgres中实现这个function吗?

我如何追加一个string到MySQL中的现有字段?

我想把我所有logging上的代码更新到他们现在所加的标准以及任何想法? 所以例如,如果代码是apple_1和apple_2我需要他们是apple_1_standard和apple_2_standard 之前: id code ———— 1 apple_1 1 apple_2 伪查询: update categories set code = code + "_standard" where id = 1; 预期结果: id code ———————- 1 apple_1_standard 1 apple_2_standard

如何在一个表中find在另一个表中没有相应行的行

我有两个表之间的1:1关系。 我想查找表A中没有表B中相应行的所有行。我使用这个查询: SELECT id FROM tableA WHERE id NOT IN (SELECT id FROM tableB) ORDER BY id desc id是两个表中的主键。 除了主键索引之外,我还有一个tableA(id desc)索引。 使用H2(Javaembedded式数据库),这将导致tableB的全表扫描。 我想避免全表扫描。 我怎样才能重写这个查询来快速运行? 我应该怎样指数?

SQL设置一列的值等于同一表中另一列的值

我有一个有两个DATETIME列的表。 其中一个从不是NULL,但其中一个有时是NULL。 我需要写一个查询将设置列B的所有NULL行等于列A中的值 我试过这个例子,但是所选答案中的SQL没有执行,因为MySQL Workbench似乎不喜欢UPDATE中的FROM。

MySQL中的`REPLACE`和`INSERT … ON DUPLICATE KEY UPDATE`之间的实际区别是什么?

我需要的是用一个特定的键设置logging的所有字段的值(键实际上是复合键),插入logging如果没有这样的logging的logging呢。 REPLACE似乎是为了完成这项工作,但同时它的手册页build议INSERT … ON DUPLICATE KEY UPDATE 。 我应该更好地select什么?为什么? 我想到的唯一的“副作用” REPLACE是,它会增加自动增量值(幸运的是,我不使用任何),而INSERT … ON DUPLICATE KEY UPDATE可能不会。 还有什么其他的实际差异需要考虑? 在哪些情况下,可以将REPLACE优先于INSERT … ON DUPLICATE KEY UPDATE ,反之亦然?

SQL Server:GROUP BY子句获取逗号分隔值

可能重复: SQL Server中的SQL group_concat函数 我期待创build一个查询,但不知何故,我无法这样做。 任何人都可以请帮我在这里? 原始数据 ID ReportId Email 1 1 a@a.com 2 2 b@b.com 3 1 c@c.com 4 3 d@d.com 5 3 e@e.com 我想通过ReportId分组,但所有的电子邮件应逗号分隔。 所以结果应该是: ReportId Email 1 a@a.com, c@c.com 2 b@b.com 3 d@d.com, e@e.com 做这个的最好方式是什么? 我正在尝试群体条款,但如果有任何其他的事情,那么我也愿意实施。 我真的很感激你的时间和帮助。 谢谢。

SQL Server的 – 布尔文字?

如何在SQL Server中编写文字布尔值? 看样品使用: select * from SomeTable where PSEUDO_TRUE 另一个样本: if PSEUDO_TRUE begin select 'Hello, SQL!' end 注意:上面的查询与我将如何使用它无关。 这只是testing文字布尔值。 提前致谢!

比较T-SQL中的date,忽略时间部分

我正在使用MS SQL 2005,我想检查两个date是否相等,但忽略时间部分。 我知道我可以使用DATEDIFF ,但担心它可能会很慢 – 这个SP在DB中被使用了很多! 有什么build议么? 编辑: David Andres的评论: “比较”不仅包括平等“ 让我意识到我没有把我的问题弄清楚 – 我其实只是检查平等,就是这样。

你在SQL Server中做什么来创build或修改?

今年是2009年,SQL Server没有CREATE OR ALTER / REPLACE。 这是我所做的。 IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'SynchronizeRemoteCatalog' AND ROUTINE_SCHEMA = 'dbo' AND ROUTINE_TYPE = 'PROCEDURE') EXEC ('DROP PROCEDURE dbo.SynchronizeRemoteCatalog') CREATE PROCEDURE dbo.SynchronizeRemoteCatalog AS BEGIN — body END 对于触发器,您必须依靠专有系统视图。 这是最受欢迎的习俗吗? 编辑:正如n8wrlbuild议, 官方的话表明,这个function不是一个高优先级。 因此,这个问题。