我加入了两张桌子
例如
table_A +---------+-----------+-----------+ | user_id | ticket_id | user_name | +---------+-----------+-----------+ table_B +-----------+-------------+ | ticket_id | ticket_name | +-----------+-------------+
如果我运行以下查询:
SELECT table_A.user_id , table_A.user_name , table_B.ticket_name FROM table_A LEFT JOIN table_B ON table_B.ticket_id = table_A.ticket_id WHERE ticket_id = '1';
在实时服务器上,我们收到错误:" Column 'ticket_id' in where clause is ambiguous
"
在测试服务器上接受查询.
我知道如何解决错误,这不是问题.
但是,如果我们的测试服务器不接受此查询并且(就像生产服务器那样)抛出错误,我会很高兴.
有没有人知道是否存在某种设置会使测试服务器像实时服务器一样抛出错误?
测试服务器
上的PS MySQL版本:Live服务器
上的MySQL版本:5.0.32-Debian_7etch5-log
5.0.41-community-log
MS SQLServer存在类似的问题,其中版本2000接受一些模糊的查询,而2005会引发错误.基本上,较新的版本似乎更严格.
作为一般规则,您应该在测试服务器和生产服务器上使用相同的数据库版本,以避免此类行为,其中一段代码在测试计算机上运行并且在生产时失败.