PhpStorm 2021.3 Help

代码检查:误导性引用

报告 SQL 代码中不明确的引用。

例如,当名称同时引用表列和例程参数时。由于违反直觉的解析逻辑,此类代码的执行可能会导致错误或意外结果。通常,具有更多本地范围的名称具有更高的优先级。

示例(PostgreSQL):
CREATE TABLE foo ( id INT, name VARCHAR(5) ); CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS $$ DECLARE b INT; BEGIN -- `name` 不明确,因为它用作列名和参数 SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name; 返回 b; 结尾; $$ 语言 plpgsql;

在 PostgreSQL 中,您可以使用#variable_conflict指令显式指定正确的引用。例如,用于#variable_conflict use_column引用列名或#variable_conflict use_variable引用参数。
CREATE TABLE foo ( id INT, name VARCHAR(5) ); CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS $$ #variable_conflict use_column DECLARE b INT; BEGIN SELECT COUNT(*) INTO b FROM t WHERE t.name = name; 返回 b; 结尾; $$ 语言 plpgsql;

禁止编辑器中的检查

  1. 将插入符号放在突出显示的行上,然后按Alt+Enter或单击意图操作图标

  2. 单击要抑制的检查旁边的箭头,然后选择必要的抑制操作。

最后修改:2022 年 2 月 11 日