从SQL中的非可空列中删除数据

时间:2013-09-11 21:26:51

标签: sql oracle sql-update nullable non-nullable

问题:我的表格有三列,列名为APP_NAME,APP_TYPE和VALUE_TIME。

enter image description here

我想为特定APP_NAME和APP_TYPE修改VALUE_TIME。因此,如果VALUE_TIME列为Nullable,我的查询应如下所示。那么删除特定条件数据的最佳方法是什么?

UPDATE TABLE_NAME
SET VALUE_TIME = null
WHERE APP_NAME = 'XYZ'
AND APP_TYPE = 'TEST'; 

由于

2 个答案:

答案 0 :(得分:2)

如果要删除行:

DELETE TABLE_NAME WHERE APP_NAME = 'XYZ' AND APP_TYPE = 'TEST'; 

列VALUE_TYPE定义为NOT NULL,因此您无法将其设置为null。你可以改变表格使其可以为空:

ALTER TABLE TABLE_NAME MODIFY VALUE_TYPE VARCHAR2(500) NULL;

然后在你的问题中运行UPDATE语句。

希望这能回答你的问题 - 目前尚不清楚你想要做什么。

答案 1 :(得分:1)

简单答案,您无法在oracle中将非可空列数据更新为NULL或''。我只能想到的是将列更改为null。

ALTER 
TABLE TABLE_NAME 
MODIFY VALUE_TYPE VARCHAR2(500) NULL