INSERT文を使用する例
この項では、INSERT
文を使用した例を示します。
INSERT文の使用
TimesTenでは、TimesTen DML文INSERT
、UPDATE
、DELETE
およびMERGE
がサポートされています。
この例では、AS SELECT
問合せ句を使用して表emp_copy
を作成し、AUTOCOMMIT
をOFFに設定してemployee_id
を増分するシーケンスを作成した後、PL/SQLのINSERT
文を使用してデータ行を表emp_copy
に挿入します。
Command> CREATE TABLE emp_copy AS SELECT * FROM employees;
107 rows inserted.
Command> SET AUTOCOMMIT OFF;
Command> CREATE SEQUENCE emp_copy_seq
START WITH 207
INCREMENT BY 1;
Command> BEGIN
INSERT INTO emp_copy
(employee_id, first_name, last_name, email, hire_date, job_id,
salary)
VALUES (emp_copy_seq.NEXTVAL, 'Parker', 'Cores', 'PCORES', SYSDATE,
'AD_ASST', 4000);
END;
/
PL/SQL procedure successfully completed.
続いて、行が挿入されたことを確認した後、トランザクションをロールバックします。
Command> SELECT * FROM EMP_COPY WHERE first_name = 'Parker';
< 207, Parker, Cores, PCORES, <NULL>, 2008-07-19 21:49:55, AD_ASST, 4000,
<NULL>, <NULL>, <NULL> >
1 row found.
Command> ROLLBACK;
Command> SELECT * FROM emp_copy WHERE first_name = 'Parker';
0 rows found.
ここで、INSERT
文を再実行してから、PL/SQLでトランザクションをロールバックします。最後に、TimesTenによって行が挿入されていないことを確認します。
Command> BEGIN
INSERT INTO emp_copy
(employee_id, first_name, last_name, email, hire_date, job_id,
salary)
VALUES (emp_copy_seq.NEXTVAL, 'Parker', 'Cores', 'PCORES', SYSDATE,
'AD_ASST',4000);
ROLLBACK;
END;
/
PL/SQL procedure successfully completed.
Command> SELECT * FROM emp_copy WHERE first_name = 'Parker';
0 rows found.