Tampilkan postingan dengan label mysql. Tampilkan semua postingan
Tampilkan postingan dengan label mysql. Tampilkan semua postingan

Implementasi SQL Transaction pada mySQL

Selasa, 25 April 2017

Langsung aja, tanpa basa-basi.

Implementasi di Stored Procedure

Cara pertama:

CREATE PROCEDURE `sp_fail`()
BEGIN
 DECLARE `_rollback` BOOL DEFAULT 0;
 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET `_rollback` = 1;
 START TRANSACTION;
 INSERT INTO `tablea` (`date`) VALUES (NOW());
 INSERT INTO `tableb` (`date`) VALUES (NOW());
 INSERT INTO `tablec` (`date`) VALUES (NOW()); -- FAIL
 IF `_rollback` THEN
  ROLLBACK;
 ELSE
  COMMIT;
 END IF;
END$$
Cara kedua:

CREATE PROCEDURE `sp_fail`()
proc: BEGIN
 DECLARE EXIT HANDLER FOR SQLEXCEPTION, NOT FOUND 
 BEGIN
  ROLLBACK;
  LEAVE proc;
 END;

 START TRANSACTION;
 insert into myTable values1 ...
 insert into myTable values2 ... 
 COMMIT; 
END$$

DELIMITER ;

Implementasi pada PHP: 


mysql_query("START TRANSACTION");

$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");

if ($a1 and $a2) {
 mysql_query("COMMIT");
} else { 
 mysql_query("ROLLBACK");
}

Cara cepat hapus / memperbaiki DEFINER pada obyek-obyek database mySQL

Sabtu, 06 Juni 2015

Seringkali export / import database mySQL ke komputer yang berbeda atau hosting yang berbeda akan menjumpai masalah. Masalah yang sering terjadi adalah masalah hak akses terhadap database yang berubah-ubah. Bahkan sukses import pun belum menjamin tak akan terjadi error.

Salah satu akses yang sering bermasalah adalah pendefinisian siapakah pembuat object database yang ditunjukkan pada klausa DEFINER pada source code nya.

Untuk masalah ini anda bisa melakukan export ke SQL dump, kemudian melakukan editing dengan menghapus klausa DEFINER. Kemudian file SQL dump yang sudah diperbarui tadi diimport ulang kedatabase yang sama.

Namun cara cepat untuk memperbaikinya adalah dengan mengeksekusi query untuk memperbarui tabel sistem sbb:

UPDATE mysql.proc SET DEFINER='kuliahga_2015@localhost' WHERE db LIKE 'kuliahga_%';


 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Catatan Kuswardayan - All Rights Reserved
Template Created by Creating Website Inspired by Sportapolis Shape5.com
Proudly powered by Blogger