ALTER TABLE WHERE子句
我不熟悉DDL。 我假设它们是ALTER
的WHERE
子句,并且在研究了WHERE
子句不存在于ALTER
Command后,我现在已经理解了。 如何处理我们可能需要检查ALTER
命令中的某些条件的情况?
Mysql删除列,其中所有行值为空
例如,对于上面的问题,如果我想写下类似代码的东西我该怎么做?
ALTER TABLE my_table DROP col
WHERE NOT EXISTS (SELECT * FROM my_table
WHERE col IS NOT NULL)
有没有任何标准的SQL方式来实现这一点? 如果不是,任何人都可以提供各种数据库(SQL Server,MySQL,Oracle,PostgreSQL)的方法吗?
您不能为表中的特定行删除列。 该表有或者没有列。 这就是ALTER
没有WHERE
子句的原因。
这听起来像是你只想在表中所有的值都是NULL
才放弃这个列。 你需要的是一个IF
语句。
更新:
SELECT CASE
WHEN NOT EXISTS (SELECT * FROM my_table WHERE col IS NOT NULL)
THEN 'Y'
ELSE 'N'
END AS my_result
IF my_result = 'Y'
ALTER TABLE...
链接地址: http://www.djcxy.com/p/94673.html