【问题标题】:Sql Server Management Studio USE statement equivalent in MySql WorkbenchMySql Workbench 中等效的 Sql Server Management Studio USE 语句
【发布时间】:2015-04-18 10:04:27
【问题描述】:

Sql Server Management Studio 中,我们可以使用 USE 语句对选定的数据库运行查询。这个函数在 MySql 中是否有等价物?

问题是,我想在Information Schema 上运行查询:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'campaign'

但在我的程序中,我只有一个连接字符串,而不是数据库名称。如果我要在特定数据库下使用上述查询,我​​应该首先解析我的连接字符串并在那里查找数据库名称,然后将查询更改为:

SELECT * FROM databasename.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'campaign'

在 Sql Server 上,第一个查询只返回了我到目标数据库的连接字符串的结果,但在 MySql 中,第一个查询显然在所有数据库中查找表,这不是我想要的。

【问题讨论】:

  • 在 MySQL 中 MS SQL Server 的 USE 等价于 USE

标签: mysql sql sql-server mysql-workbench ssms


【解决方案1】:

MySQL 也有USE

USE db1;

此处的文档:http://dev.mysql.com/doc/refman/5.0/en/use.html

更新:重新阅读您的问题后,您可能实际上并不想要USE,但您想将结果过滤到特定架构:

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME = N'campaign'
  AND TABLE_SCHEMA = 'databasename'

【讨论】:

  • 这意味着我应该解析我的连接字符串以获取数据库名称。
  • @Pedram 是的,这似乎是最好的选择。
【解决方案2】:

the INFORMATION_SCHEMA doc 不是 100% 清楚,但INFORMATION_SCHEMA.TABLES 中的TABLE_SCHEMA 字段具有 MySQL 中的数据库名称。这是因为在 MySQL 中,schema and database are synonymous 甚至到目前为止 CREATE SCHEMA is a synonym to CREATE DATABASE

如果这对您不起作用,另一种选择是SHOW TABLES statement

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多