1

当我们使用自然连接时,当两个表具有相同的列名时,我们正在连接表。但是,如果我们用 PHP 编写它,然后 DBA 向两个表添加更多字段,那么自然连接会中断吗?

插入也是如此,如果我们做一个

insert into gifts values (NULL, "chocolate", "choco.jpg", now());

那么当 DBA 向表中添加一些字段(例如第 2 列或第 3 列)时,它将破坏代码并污染表。因此,当 SQL 语句用编程语言编写并存储在大型项目的文件中时,最好拼出列名。

4

3 回答 3

2

无论您在哪里编写自然连接都不是一个好主意。它们隐藏了更明确的代码会暴露的含义,并且如果列名更改可能会引入细微的错误。

于 2010-04-25T11:11:40.477 回答
1

是的,明确说明您的字段始终是最佳实践。否则,当您修改架构时,您的代码将中断。

于 2010-04-25T11:10:34.627 回答
1

是的,明确命名您关注的列总是一个好主意。正如您所指出的,如果有人向表中添加列,这可以防止查询中断。

这同样适用于更喜欢在 SELECT 而不是写入中列出列SELECT *。请参阅此相关问题

于 2010-04-25T11:10:49.743 回答