iya mas awaludin kebetulan kami pakai cron job dari linux utk menjalankan procedure yang otomatis dijalankan saat setiap jam 12 malam, untuk mas awaludin teriumakasih atas pencerahannya btw klo boleh tau disebabkan karena apa constrain ditable transaksi dienabled sehingga bisa menghapus data ditable master? utk prosedure yg dijalankan setiap jam 12 malam, kebetulan memang dikhususkan utk entry transaksi barang otomatis oleh sistem, tapi sy cek diprocedure tidak ada script PL/SQL utk mengalter constrasin kd_barangnya....
--- Pada Sel, 28/4/09, Awaluddin Hamid <[email protected]> menulis: Dari: Awaluddin Hamid <[email protected]> Topik: Re: [indo-oracle] Re: OOT:tanya penghapusan data dengan table master terelasi dgn tabel transaksi Kepada: [email protected] Tanggal: Selasa, 28 April, 2009, 10:20 PM Teguh Susanto wrote: > > tapi kasus yg terjadi data master bisa terhapus walalupun masih > memiliki data transaksi dan kebetulan sy cek di log penghapusan data > itu terhapus oleh sistem > > > Bisa dijelaskan di sini, apa yang dimaksud dengan terhapus oleh sistem? Apakah tau2 terhapus begitu saja atau oleh sebuah prosedur yang sudah dibuat sebelumnya (misalnya via job, trigger, dsb)? Jika jawabannya yang pertama, bisa jadi itu adalah bug dari Oracle. Sebenarnya ada kondisi dimana record di parent table bisa saja dihapus meskipun masih ada record di child table. Case: SQL> CREATE TABLE t_master ( 2 id NUMBER, 3 name VARCHAR2(48) , 4 CONSTRAINT pk_id PRIMARY KEY (id)); Table created. SQL> INSERT INTO t_master VALUES (1, 'satu'); 1 row created. SQL> SELECT * FROM t_master; ID NAME ---------- ------------ ----- 1 satu SQL> CREATE TABLE t_child ( 2 child_name VARCHAR2(48) , 3 id NUMBER, 4 CONSTRAINT fk_id FOREIGN KEY (id) REFERENCES t_master (id)); Table created. SQL> INSERT INTO t_child VALUES ('satu',1); 1 row created. -- error karena child record ditemukan SQL> DELETE FROM t_master 2 WHERE id = 1; DELETE FROM t_master * ERROR at line 1: ORA-02292: integrity constraint (USER1.FK_ID) violated - child record found SQL> ALTER TABLE t_child DISABLE CONSTRAINT fk_id; Table altered. -- tidak error karena foreign key sudah di-disable sebelumnya. SQL> DELETE FROM t_master 2 WHERE id = 1; 1 row deleted. -- enable foreign key tanpa validasi record sebelumnya SQL> ALTER TABLE t_child ENABLE NOVALIDATE CONSTRAINT fk_id; Table altered. SQL> SELECT * FROM t_master; no rows selected -- record ini gak punya parent SQL> SELECT * FROM t_child; CHILD_NAME ID ------------ --------- --------- ---------- satu 1 SQL> INSERT INTO t_master VALUES (2,'dua'); 1 row created. SQL> INSERT INTO t_child VALUES ('dua',2); 1 row created. -- tes apakah foriegn key sudah enable lagi SQL> DELETE FROM t_master 2 WHERE id = 2; DELETE FROM t_master * ERROR at line 1: ORA-02292: integrity constraint (USER1.FK_ID) violated - child record found SQL> SELECT * FROM t_master; ID NAME ---------- ------------ --------- --------- --------- --------- 2 dua -- ada record yang tidak mempunyai parent SQL> SELECT * FROM t_child; CHILD_NAME ID ------------ --------- --------- - ---------- satu 1 dua 2 CMIIW, AH Nikmati chatting lebih sering di blog dan situs web. Gunakan Wizard Pembuat Pingbox Online. http://id.messenger.yahoo.com/pingbox/ [Non-text portions of this message have been removed]

