我可以在加入之前检查表是否存在吗?

时间:2015-09-29 15:35:52

标签: mysql

我有以下问题。我有表A,如果表B存在,我想加入表B.可以这样做吗?我只是在WorkBench中编写SQL来尝试实现它。

我知道我不能使用EXISTS选项,因为我尝试输入它但它会提示输入错误。

任何建议都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:0)

数据操作语言语句通常是针对特定模式编写的;假定您在发出语句时知道模式是什么样的。因此,您通常无法询问特定架构对象是否存在或具有特定结构。但是,您可以根据架构编写一个执行不同操作的存储过程。您可以在存储过程中使用条件语句并查看INFORMATION_SCHEMA。

答案 1 :(得分:0)

我设法使用EXECUTE执行此操作,因此使用仅在运行时准备的查询:

SET @sqlCommand = IF(
    EXISTS (SELECT column_name FROM information_schema.columns WHERE table_schema = '{{yourschemaname}}' AND table_name = '{{yourtablename}}' AND column_name = '{{yourcolumnname}}'), 
    'SELECT \'Yes! Good to go!\' as ColumnExists',
    'SELECT \'Nope!\' as ColumnExists');
PREPARE executable FROM @sqlCommand;
EXECUTE executable;

请注意,中间的两个选择(是!/否!)是有条件执行的自定义语句。因此,如果列存在,则执行第一个命令(选择'是!'),否则执行第二个命令(选择' nope')。

我从这里讨论得到了提示..看看你是否正在寻找MSSQL等价物:https://ask.sqlservercentral.com/questions/97579/check-if-table-exists-in-join.html