1. 程式人生 > >SQL修改列為非空屬性

SQL修改列為非空屬性

修改資料庫表的已存在的某列為非空屬性

alter table table_name modify column_name not null;

語句很簡單,但經常容易忽略一個事實,執行語句時報下面的錯誤:

ORA-02296: 無法啟用 (SYSTEM.) - 找到空值

導致修改不能成功。

因為在資料庫中由於原來沒有限制此列的非空屬性,此列可以為空,所以在一行資料中可以對此列不插入值,最終在此表此列中存在為空的資料。

既然要設定此列不能為空,表示此列的所有資料都不能為空,而現在已存在為空的資料,存在衝突。

首先對此列所有為空的行更新此列為非空資料,在執行上面的SQL語句。