Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Alter table在SQL中添加检查条件_Sql_Oracle_Ddl_Alter Table_Check Constraints - Fatal编程技术网

Alter table在SQL中添加检查条件

Alter table在SQL中添加检查条件,sql,oracle,ddl,alter-table,check-constraints,Sql,Oracle,Ddl,Alter Table,Check Constraints,鉴于: 如何使用alter表将“戏剧”添加到Chu流派? 我想这大概是: CREATE TABLE SHOW ( ID VARCHAR2(10), GENRE VARCHAR2(25) NOT NULL, CONSTRAINT CH_GENRE CHECK (GENRE IN ('war','western')), ) 但它不起作用。从技术上讲,您需要删除并重新创建约束: ALTER TABLE TV_SHOW ADD CONSTRAINT ADD_RO

鉴于:

如何使用alter表将“戏剧”添加到Chu流派? 我想这大概是:

CREATE TABLE SHOW ( 
    ID VARCHAR2(10), 
    GENRE VARCHAR2(25) NOT NULL, 
    CONSTRAINT CH_GENRE CHECK (GENRE IN ('war','western')), 
    )

但它不起作用。

从技术上讲,您需要删除并重新创建约束:

ALTER TABLE TV_SHOW
ADD CONSTRAINT ADD_ROMANTIC
  CHECK (GENRE IN ('romantic'));
如果有很多行,验证约束可能会很昂贵。另一方面,由于我们只是添加另一个可能的值,我们知道所有值都已经有效,因此我们可以跳过验证,如下所示:

alter table show drop constraint ch_genre;
alter table show 
    add constraint ch_genre 
    check (genre in ('war', 'western', 'romantic'))
    enable
;
如果您发现自己在定期修改值列表,这表明您应该有一个单独的表来存储该列表,比如说
genres
,以及一个与
show
genres
相关的外键(可能通过整数、代理主键而不是字符串)。

简单地说>> 删除并重新创建约束

alter table show 
    add constraint ch_genre 
    check (genre in ('war', 'western', 'romantic'))
    enable novalidate
;

删除并重新创建检查约束,如下所示:

 ALTER TABLE SHOW Drop CONSTRAINT CH_GENRE; ALTER TABLE SHOW ADD
 CONSTRAINT CH_GENRE CHECK (GENRE IN ('war','western','Drama'));

您的表包含数据??我的意思是专栏体裁包含的数据不在(‘战争’、‘西部’、‘戏剧’)这些价值观中??
CREATE TABLE SHOW ( 
    ID VARCHAR2(10), 
    GENRE VARCHAR2(25) NOT NULL, 
    CONSTRAINT CH_GENRE CHECK (GENRE IN ('war','western'))
    );

Table SHOW created.

alter table SHOW drop constraint CH_GENRE ;

Table SHOW altered.

alter table SHOW add constraint CH_GENRE check (GENRE IN ('war','western','romantic'));

Table SHOW altered.