由于一些组织上的怪异,我的工作团队现在对随机数据库的访问权限有限,但我们并不完全确定我们应该使用它的语法。在一个理想的世界里,我们希望它是MySQL。
任何人都可以向我描述或指向一组表创建和选择查询,以便我们测试这是否是MySQL?理想情况下,这组查询将在MySQL上运行 ,在其他系统上引发错误。
答案 0 :(得分:4)
尝试运行MySQL select version命令:
SELECT VERSION()
http://dev.mysql.com/doc/refman/5.0/en/installation-version.html
它必须是表创建和/或选择查询还是上述工作?
答案 1 :(得分:1)
每个RDBMS都有各自的协议和客户端库。一个RDBMS的客户端通常无法连接到错误的RDBMS品牌。
我建议您使用MySQL客户端测试连接。如果这不起作用,那就不是MySQL。 : - )
评论:
MySQL不会根据权限限制语法,因此您永远不会遇到语法错误。即使您没有访问任何数据库或表的权限,也可以调用大多数内置函数。我证实了这一点:
mysql> grant usage on *.* to 'dummy'@'%'; /* minimal privilege */
$ mysql -udummy
mysql> select version();
+-----------------+
| version() |
+-----------------+
| 5.5.31-30.3-log |
+-----------------+
如果您在该语句中出现语法错误,我会说您实际上已连接到不具有VERSION()
函数的其他RDBMS。
例如,Microsoft SQL Server有一个@@VERSION
全局变量,它们具有SERVERPROPERTY()
功能,可用于查询服务器版本和其他信息。 (参见文档链接。)
根据我的经验,使用Microsoft SQL Server的网站很少调用它的Microsoft SQL Server,他们错误地将其称为“SQL”甚至是“MySQL”。所以我的第一个猜测就是你正在使用那个产品。使用我上面提到的全局变量和函数来测试它。
答案 2 :(得分:1)
答案 3 :(得分:0)
select * from v$version;
这可行,但我不确定这是否特定于MySQL,更不用说,如果它甚至可以在MySQL中运行 - 我想我会分享。如果有效,请告诉我们!