खोज…


वाक्य - विन्यास

  • अद्यतन तालिका-नाम [[एएस] सहसंबंध-नाम] सेट कॉलम-नाम = मान [, स्तंभ-नाम = मूल्य}] * [कहां खंड]
  • अद्यतन तालिका-नाम सेट कॉलम-नाम = मान [, स्तंभ-नाम = मूल्य] * जहां उपलब्ध है

उदाहरण के साथ सिंटैक्स को अपडेट करें

सामान्य अद्यतन

UPDATE
      TESTTABLE
SET
      TEST_COLUMN= 'Testvalue',TEST_COLUMN2= 123
WHERE
      EXISTS
          (SELECT MASTERTABLE.TESTTABLE_ID 
           FROM MASTERTABLE 
           WHERE ID_NUMBER=11);

इनलाइन दृश्य का उपयोग करके अद्यतन करें

इनलाइन दृश्य का उपयोग करना (यदि इसे Oracle द्वारा अद्यतन करने योग्य माना जाता है)

नोट : यदि आप एक गैर-कुंजी संरक्षित पंक्ति त्रुटि का सामना करते हैं तो इसे अपडेट करने योग्य बनाने के लिए इसे हल करने के लिए एक इंडेक्स जोड़ें

UPDATE
      (SELECT
            TESTTABLE.TEST_COLUMN AS OLD,
            'Testvalue' AS NEW
       FROM
                TESTTABLE
            INNER JOIN
                MASTERTABLE
            ON TESTTABLE.TESTTABLE_ID = MASTERTABLE.TESTTABLE_ID
       WHERE ID_NUMBER=11) T
SET
      T.OLD        = T.NEW;

मर्ज का उपयोग करके अपडेट करें

मर्ज का उपयोग करना

MERGE INTO
      TESTTABLE
USING
      (SELECT
            T1.ROWID AS RID,
            T2.TESTTABLE_ID
       FROM
                TESTTABLE T1
            INNER JOIN
                MASTERTABLE T2
            ON TESTTABLE.TESTTABLE_ID = MASTERTABLE.TESTTABLE_ID
       WHERE ID_NUMBER=11)
ON
      ( ROWID = RID )
WHEN MATCHED
THEN
    UPDATE SET TEST_COLUMN= 'Testvalue';

नमूना डेटा के साथ विलय

drop table table01;
drop table table02;

create table table01 (
       code int,
       name varchar(50),
       old int
);

create table table02 (
       code int,
       name varchar(50),
       old int
);

truncate table table01;
insert into table01 values (1, 'A', 10);
insert into table01 values (9, 'B', 12);
insert into table01 values (3, 'C', 14);
insert into table01 values (4, 'D', 16);
insert into table01 values (5, 'E', 18);

truncate table table02;
insert into table02 values (1, 'AA', null);
insert into table02 values (2, 'BB', 123);
insert into table02 values (3, 'CC', null);
insert into table02 values (4, 'DD', null);
insert into table02 values (5, 'EE', null);

select * from table01 a order by 2;
select * from table02 a order by 2;

--

merge into table02 a using (
      select b.code, b.old from table01 b
) c on (
  a.code = c.code
)
when matched then update set a.old = c.old
;

--

select a.*, b.* from table01 a 
inner join table02 b on a.code = b.codetable01;

select * from table01 a
where 
       exists 
       (
         select 'x' from table02 b where a.code = b.codetable01
       );
       
select * from table01 a where a.code in (select b.codetable01 from table02 b);

--

select * from table01 a
where 
       not exists 
       (
         select 'x' from table02 b where a.code = b.codetable01
       );
       
select * from table01 a where a.code not in (select b.codetable01 from table02 b);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow