首页 > 解决方案 > 将布尔列添加到 oracle 数据库的现有表中

问题描述

我正在使用 oracle 数据库,并且我有一个名为 MyTitle 的表,并且在这个现有表中我必须添加一个布尔类型的列,因此该列的名称是 IsChecked 并且该列的默认值应该是 false,我尝试了以下方法请告知是否正确

alter Table MyTitle add IsChecked Number(1) default 0 not null ;

标签: oracle

解决方案


看起来很合理。你有问题吗?不同的人/系统对伪布尔列有不同的约定。有些使用数字与 0 和 1。有些使用 achar(1)与 'Y' 和 'N'。与系统中存在的任何约定保持一致。

我通常会包含一个check约束,将列中的值限制为您想要的值,即

check( isChecked in (0,1) )

但是,如果您正在构建数据仓库,则有一些观点认为,包括这样的检查约束是不必要的开销,因为(或应该)只有极少数路径(理想情况下是一个)通过ETL 过程,因此您只需要确保 ETL 过程没有插入无效值。


推荐阅读