Oracle/PLSQL ORA-01451错误及错误码查询网站

本文介绍了 Oracle 数据库中 ORA-01451 错误的含义、原因及解决办法。当尝试将作为主键的列设置为允许 NULL 值时会触发此错误。文章提供了 SQL 示例来演示如何创建表和更改属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.superfunction.net/oraerror/error_code.jsp?OraNo=01451     

  Oracle 错误码查询网站

Oracle/PLSQL

Oracle/PLSQL ORA-01451
錯誤原文 - column to be modified to NULL cannot be modified to NULL
錯誤原因

資料庫管理人員異動資料表的設定屬性成為可以為空,但該欄位目前的設定值已是可以為空值,或是該欄位是主鍵所以不容許空值

處理辦法

1.把要修改為空值的欄位所擁有的主鍵屬性移除
2.不重複執行修改屬性對於已經是可以為空值的欄位

範例
建立資料表設定其屬性。

CREATE TABLE customer
( 
id 	varchar2(10) NOT NULL,
name 	varchar2(35),
sex 	varchar2(2),
CONSTRAINT customer_pk PRIMARY KEY (id) 
);

管理人員現在要對於customer 這一個資料表進行屬性的調整,要將id的欄位調整成為可以為空值。

ALTER TABLE customer
MODIFY id NULL;

這樣的異動就會發生,因為id這一個值是被設定為PK值,所以不可以為空值。

ALTER TABLE customer
DROP CONSTRAINT customer_pk;

把PK 值得設定移除就可以將該欄位設定為可接受空值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

長安旧夢

知识的大门打开后,才有真正机会

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值