2017-04-03 84 views
0

旧值我有一个SQL表架构如何更新数据库记录,仍然保持在SQL

SQL> desc etpro_update; 
Name          Null? Type 
ID          NOT NULL NUMBER 
NAME            VARCHAR2(4000) 
IS_ACTIVE           NUMBER 
CREATED_DATE          DATE 

其中IS_ACTIVE列已设置为默认1.So的价值,我们怎么可以存储相同的数据(记录)入表中具有值的列IS_ACTIVE 0 所以最终的输出应该看起来像如下

123   test  1  2017_12_03 
123   test  0  2017_12_03 
+0

我一般去'SELECT * INTO newtable中从etpro_update其中IS_ACTIVE(0,1) ' – flaZer

+0

我已经对问题进行了更正,要求就像我们如何在同一个表中存储具有不同IS_ACTIVE列值的记录。其中IS_ACTIVE默认设置为1。 – hemu

+0

SQL>和大写和'desc'让我觉得这是O​​racle。如果它是Oracle,请标记数据库类型。要使用'INSERT'添加记录。要确定它是0还是1,您需要知道该记录是否存在。要知道该记录是否存在,您需要匹配一个唯一的密钥。那么这里唯一的关键是什么? –

回答

0

如果你想创建一个新表具有IS_ACTIVE为数据0或1,然后尝试:

create table some_table as 
select * from etpro_update 
where is_active in (0, 1); 

如果它已经存在,使用做INSERTSELECT

insert into some_table (
    id, 
    name, 
    is_active, 
    created_date 
    ) 
select id, 
    name, 
    is_active, 
    created_date 
from etpro_update 
where is_active in (0, 1); 
相关问题