Sebagai contoh kita memiliki table database

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(20) NOT NULL,
  `password` text NOT NULL,
  `created_by` int(11) NOT NULL,
  PRIMARY KEY (`user_id`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `user_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `client` (
  `client_id` int(11) NOT NULL AUTO_INCREMENT,
  `client_name` varchar(20) NOT NULL,
  `created_by` int(11) NOT NULL,
  PRIMARY KEY (`client_id`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `client_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

dbuserclient

Waktu akan menambahkan user, proses tersebut akan gagal, karena kita belum memiliki user ;), usernya masih kosong sementara untuk menambah data kedalam tabel user dan client harus memiliki user_id,
perintah untuk menambahkan user di MySQL bisa dengan cara

INSERT INTO `belajar`.`user` (`user_id`, `user_name`, `password`, `created_by`) VALUES (NULL, 'jaranguda', MD5('jaranguda.com'), 0);

Error yang muncul kurang lebih

#1452 - Cannot add or update a child row: a foreign key constraint fails (`belajar`.`user`, CONSTRAINT `user_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE)

Coba login ke MySQL anda, atau menggunakan phpMyAdmin dan ketik perintah berikut

ALTER TABLE `user` CHANGE `created_by` `created_by` INT( 11 ) NULL ;

sekarang coba ubah query untuk menambahkan database menjadi

INSERT INTO `belajar`.`user` (`user_id`, `user_name`, `password`, `created_by`) VALUES (NULL, 'jaranguda', MD5('jaranguda.com'), NULL);

data berhasil masuk :)

Untuk database lengkapnya bisa di download dibawah ini

Join the Conversation

2 Comments

Your email address will not be published. Required fields are marked *