ALTER TABLE WHERE子句

我不熟悉DDL。 我假设它们是ALTERWHERE子句,并且在研究了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

上一篇: ALTER TABLE WHERE Clause

下一篇: sql query Update INNER JOINED table