使用MySQL / PDO时,表名是否应该以数据库名称和句点为前缀?

时间:2015-05-29 20:27:58

标签: php mysql pdo

我见过的绝大多数查询都有数据库名称,后跟表名前一段时间。例如:

SELECT * FROM mydatabase.mytable;

然而,这似乎同样有效:

SELECT * FROM mytable;

是否有理由在每个表名前加上mydatabase.

我在PHP中通过PDO使用MySQL。

2 个答案:

答案 0 :(得分:3)

  

是否有理由拥有mydatabase。在每个表名之前

是的,如果您正在执行cross database query;您实际访问和连接来自不同数据库的表的位置。以下示例db1db2是不同的数据库。

select t1.*,t2.some_column
from db1.table1 t1  
inner join db2.table2 t2 on t1.some_id_column = t2.some_id_column;

但是,如果从同一数据库中的表访问并对该数据库运行查询,则无需指定完全限定名称(DB_NAME.SCHEMA_NAME.TABLE_NAME

答案 1 :(得分:2)

如果您只打算使用一个数据库,则无需在每个查询中定义它。使用mydatabase.mytable的唯一原因是您要连接到多个数据库。