【问题标题】:Can you DROP TABLE IF EXISTS by specifying database name with table?您可以通过使用表指定数据库名称来 DROP TABLE IF EXISTS 吗?
【发布时间】:2011-05-18 14:35:32
【问题描述】:

我正在尝试使用以下查询语句在数据库中删除一个表:

mysql_query('DROP TABLE IF EXISTS "dbName.tableName"') or die(mysql_error());

但我不断收到错误消息。有谁知道指定 dbName.tableName 是否无效?

【问题讨论】:

  • 错误是什么?你有权限删除那个表吗?
  • 我假设您需要切换双引号和单引号。但我想看看错误。
  • 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“dbName.tableName”附近使用正确的语法

标签: php mysql sql-drop


【解决方案1】:
mysql_query('DROP TABLE IF EXISTS `dbName`.`tableName`') or die(mysql_error());

【讨论】:

  • 好的...我会尝试 - 所以本质上你是说双引号不起作用...我会马上回来
  • 哇..不知道在某些 mysql_queries 中——不喜欢双引号。谢谢@Emmerman!
  • 这不仅仅是关于双引号 - 你应该从表名中引用数据库名 separapely
  • 是的,我看到了——但我也不知道。
  • 在这里投票并标记为答案,因为@Emmerman 首先发布了
【解决方案2】:

你应该使用反引号而不是这样的双引号:

mysql_query('DROP TABLE IF EXISTS `dbName`.`tableName`');

【讨论】:

  • 原始代码有两个问题。首先,您应该分别引用 dbName 和 tableName。其次,您只对字符串使用单引号或双引号。对于标识符,例如表名和列名,请使用反引号:dev.mysql.com/doc/refman/5.0/en/identifiers.html
【解决方案3】:

您不能使用双引号来引用数据库/表名称,而是将它们不加引号或使用反引号。但是要回答您的问题,是的,指定数据库名称是完全有效的。

DROP TABLE `dbName`.`tableName`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2023-03-28
    相关资源
    最近更新 更多