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 一起使用。提前非常感谢!
解决方案
该IF
语句只允许在编程块中使用,这实际上意味着在存储过程、函数和触发器中。
您可以在单个查询中表达此逻辑:
DELETE FROM user1table
WHERE id = 3 AND
NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'user3project3');
也就是说,如果您为每个用户存储一个单独的表,那么您的数据模型非常可疑。
推荐阅读
- java - 如何弃用 Google 登录的 startActivityResult
- html - 围绕旋转对象旋转
- php - 使用数据库进行 Laravel 测试 - 每个测试的单个事务未按预期工作
- twitter-bootstrap - 用于 Next.js 应用程序的 Bootstrap 安装 bootstrap 或 react-bootstrap
- java - Springboot 在 POST 请求中添加“_class”字段
- c# - 如何模拟不会导致脆弱测试的实现细节
- amazon-web-services - AWS Database Migration Service 只能迁移几个表或列吗?
- rightnow-crm - rightnow-crm 和不可用时间
- php - 使用PHPmailer在webmail中收不到邮件
- javascript - 如何防止在 Nuxt.js 中重复调用 asyncData