当前位置: 首页 > 面试题库 >

当SQL包含变量时在pgAdmin中调试SQL

申屠泳
2023-03-14
问题内容

在SQL Server中,我可以从应用程序中复制sql代码,然后将其粘贴到SSMS中,声明并分配sql中存在的var,然后运行。是伟大的调试方案。

例如(请注意,我生疏了,语法可能不正确):

declare @x as varchar(10)
set @x = 'abc'
select * from sometable where somefield = @x

我想在pgAdmin中使用Postgres做类似的事情(或其他postgres工具,有什么建议吗?),我可以将我的SQL(参数和全部)放到可以在Postgres
DB上运行的东西上。

我意识到您可以创建pgscript,但是它看起来不是很好,例如,如果我做上面的等效操作,则它不会在@x的值两边加上单引号,也不会让我将它们加倍,之后便没有桌子了-
只有文字…

目前我有一段SQL有人写过,其中有3个唯一变量,每个变量约被使用6次…

因此,问题是其他人如何 有效 地调试SQL ,最好以与SQL Server时代相似的方式进行调试。


问题答案:

您可以使用PREPARE,EXECUTE,DEALLOCATE命令处理语句来实现这一点,这实际上就是我们在这里所说的。

例如:

PREPARE test AS SELECT * FROM users WHERE first_name = $1;
EXECUTE test ('paul');
DEALLOCATE test;

也许不像某些人喜欢的那样图形化,但肯定可行。



 类似资料:
  • 问题内容: 我需要有关通过变量将XML路径传递给nodes()方法的帮助。我看了几篇不同的文章,发现可以使用和传递节点。下面的示例按预期工作: 但是,当我尝试传递路径而不是单个节点时,它不起作用: 我需要能够在始终为常数的路径的另一部分之前传递路径。因此,在我的示例中,“测试”部分将始终相同,但其上方的路径将有所不同。 我怀疑这不是这样做的方法。但是,有其他方法可以做到这一点吗? 任何帮助,将不胜

  • 问题内容: 我想要求/包括一个文件,并将其内容检索到一个变量中。 test.php index.php 喜欢但是比它仍然应该执行PHP代码。这可能吗? 问题答案: 我也遇到过这个问题,尝试类似

  • 除了Trace调试之外,系统还提供了\think\Debug类用于各种调试。 输出某个变量是开发过程中经常会用到的调试方法,除了使用php内置的var_dump和print_r之外,ThinkPHP框架内置了一个对浏览器友好的dump方法,用于输出变量的信息到浏览器查看。 用法: dump($var, $echo=true, $label=null) 相关参数的使用如下: 参数 描述 var(必须

  • 可能重复: javascript:string包含 我有一个postcode变量,希望在更改/输入邮政编码时使用JS将一个位置添加到不同的变量中。例如,如果输入了ST6,我希望输入Stoke North。 我需要做一个if语句来运行。 等等。 我该怎么做呢?它不是检查'code'是否等于一个值,而是检查它是否包含一个值,我认为这是我的问题。

  • 问题内容: 我正在尝试在内容表中插入值。如果我在VALUES内没有PHP变量,则效果很好。当我将变量放在里面时,这是行不通的。我究竟做错了什么? 问题答案: 在任何MySQL语句中添加PHP变量的规则很简单: 任何表示 SQL数据文字的 变量(或简单地说-SQL字符串或数字)都 必须通过准备好的语句添加 。没有例外。 任何其他查询部分(例如SQL关键字,表或字段名或运算符)都必须通过 白名单 进行

  • 问题内容: 鉴于这段JavaScript代码… 有人可以向我解释这种技术叫什么(我的最佳猜测是这个问题的标题!)?以及它如何/为什么确切起作用? 我的理解是,将为变量分配第一个变量的最接近的值(从左到右),该变量的值不为null或未定义,但是我没有设法找到有关此技术的大量参考资料,并且看到它用了很多。 另外,这项技术是否专门针对JavaScript?我知道在PHP中执行类似操作会导致具有真正的布尔