
在 SQL 语句中使用完全限定的表名称(包括数据库名称)。
始终在语句中显式指定数据库名称和每个表名称。(如果是主数据库,请使用“main”)。例如,以下代码包括一个显式数据库名称
main
:
SELECT employeeId
FROM main.employees
如果显式指定数据库名称,运行时就不必检查每个数据库才能找到匹配表。这样做还消除了使运行时选择错误数据库的可能性。即使 SQLConnection 仅连接到单个数据库,也要遵循此规则。在后台,SQLConnection 还连接到可通过 SQL 语句访问的临时数据库。

在 SQL
INSERT
和
SELECT
语句中使用显式列名称。
下列示例介绍如何使用显式列名称:
INSERT INTO main.employees (firstName, lastName, salary)
VALUES ("Bob", "Jones", 2000)
SELECT employeeId, lastName, firstName, salary
FROM main.employees
将上述示例与下列示例进行比较。避免使用这种类型的代码:
-- bad because column names aren't specified
INSERT INTO main.employees
VALUES ("Bob", "Jones", 2000)
-- bad because it uses a wildcard
SELECT *
FROM main.employees
如果没有显式列名称,运行时必须执行额外操作才能找到列名称。如果
SELECT
语句使用通配符(而不是显式列),将导致运行时检索额外数据。此额外数据需要额外处理并将创建不需要的额外对象实例。