MYSQL:检查表是不是存在不起作用

Posted

技术标签:

【中文标题】MYSQL:检查表是不是存在不起作用【英文标题】:MYSQL: Check if table exists does not workMYSQL:检查表是否存在不起作用 【发布时间】:2014-07-23 13:20:36 【问题描述】:
IF OBJECT_ID(N`db_291702_2`.`aaCoRrankingDateManage`, N'U') IS NOT NULL
BEGIN
  PRINT 'Table Exists'
END

这有什么问题?为什么我会收到错误消息? how-to-check-if-a-table-exists-in-sql-server/ 中建议的方法都不适合我。

PS。 “不起作用”意味着像

这样的错误

您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的 ''db_291702_2'.'aaCoRrankingDateManage' LIMIT 0, 30' 附近使用正确的语法

附加信息: 我用的是phpMyAdmin,我的两个数据库叫db_291702_1db_291702_2,后者有两张表,其中一张叫aaCoRrankingDateManage

【问题讨论】:

单引号用于封装字符串,而不是表名 查看代码着色。你有奇数个单引号,这会给sql带来麻烦 你是对的,编辑了它,但没有改变任何东西 我似乎找不到任何使用OBJECT_ID() 的 MySQL 工作示例,我也无法在官方 MySQL 参考资料中找到它......也许它不是 MySQL 函数?这家伙有类似的问题:board.issociate.de/thread/260989/… 我认为接受的答案可以为您提供更多帮助:***.com/questions/1525784/… 【参考方案1】:

如果要转义表名或列名,请使用反引号

select `group` from table1

静态字符串必须包含在引号中

select * from users where name = 'john'

每个数据库引擎的语法都有点不同。以上适用于 MySQL,但 SQL-Server 有不同的语法。在那里,您使用方括号 [] 来转义名称。

但是,如果您使用保留字,您只需要转义名称。你不必逃避一切。

【讨论】:

【参考方案2】:

给定的源代码不是 MySQL 代码。

【讨论】:

MySQL 使用 SQL。你是说这是 T-SQL 吗? 在Mysql中使用这个if exists table_name1,table_name2...

以上是关于MYSQL:检查表是不是存在不起作用的主要内容,如果未能解决你的问题,请参考以下文章

检查mysql中是不是存在表

检查 localStorage 项目是不是存在不起作用

检查 .txt 文件是不是存在。 FileWriter.exists 方法不起作用

使用 DFS 检查二叉树中是不是存在路径不起作用

检查数组中是不是存在迭代器时,array.includes 不起作用[重复]

检查某个类别中是不是存在帖子不起作用。 php,刀片,Laravel