SQL-如果存在另一个表则删除行

时间:2018-11-26 19:42:48

标签: mysql sql

如果另一个表不存在,我正在尝试从表中删除一行。我尝试使用以下语句

 IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'user3project3'))
 BEGIN
     DELETE FROM user1table WHERE id=3
 END

但是我遇到以下错误:

 Unrecognized statement type. (near "IF" at position 0)

如果这很重要,我将phpMyAdmin与XAMPP一起使用。 提前非常感谢!

1 个答案:

答案 0 :(得分:2)

IF语句仅在编程块中允许,实际上这意味着在存储过程,函数和触发器中使用。

可以在单个查询中表达此逻辑:

DELETE FROM user1table
    WHERE id = 3 AND
          NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'user3project3');

也就是说,如果要为每个用户存储一个单独的表,则您的数据模型非常有问题。