Jawaban Alpha Surya dari Pertanyaan Bagaimana cara insert data ke MySQL dengan asumsi kita tidak tahu apakah record sudah ada atau belum ada? di SETO.CO.ID

Lihat jawaban selengkapnya di SETO.CO.ID

Asumsikan kita punya tabel:

CREATE TABLE 'transcripts' (
'ensembl_transcript_id' varchar(20) NOT NULL,
'transcript_chrom_start' int(10) unsigned NOT NULL,
'transcript_chrom_end' int(10) unsigned NOT NULL,
PRIMARY KEY ('ensembl_transcript_id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Sekarang bayangkan bahwa kita memiliki automatic pipeline untuk mengimpor transkrip meta-data dari Ensembl, dan karena berbagai alasan pipeline mungkin rusak ketika eksekusi. Dengan demikian, kita perlu memastikan dua hal: 1) eksekusi pengulangan dari pipeline tidak boleh merusak database, dan 2) eksekusi pengulangan tidak boleh menghasilkan error duplicate primary key.

Maka cara untuk insert adalah sebagai berikut:

REPLACE INTO 'transcripts'
SET 'ensembl_transcript_id' = ‘ENSORGT00000000001′,
'transcript_chrom_start' = 12345,
'transcript_chrom_end' = 12678;

Dengan cara ini, jika record sudah ada, maka akan diganti; jika belum ada, maka akan dibuat baru.

Tulisan ini dipost melalui Aplikasi Seto di tanya jawab seputar MySQL, dan Programming.

Advertisements