Arsip: alter table

 
user image
more 14 years ago

mas_kofa

halo temen2 semua ... aku nemuin kasus nich.... ceritanya begini... 1. aku untuk bikin database aku periksa dulu apa data base sudah ada belum..... create database if not exists depo; use depo; 2. untuk membuat tabel periksa dulu apakah tabel sudah ada ato belum...... CREATE TABLE if not exists tbdepo ( id int(11) NOT NULL auto_increment, SN varchar(25) NOT NULL default '', PN varchar(25) NOT NULL default '', VN varchar(25) NOT NULL default '', Nama varchar(50) NOT NULL default '', Produksi varchar(25) NOT NULL default '', Kondisi varchar(15) NOT NULL default '', Awal varchar(100) NOT NULL default '', Akhir varchar(100) NOT NULL default '', Tgl date NOT NULL default '0000-00-00', type int(1) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; 3. nah sekarang aku mo nambahin field....tentunya kalo field itu belum ada bisa pake di bawah ini dan tidak ada masalah alter table tbdepo add qty integer; ................tp kalo field nya sudah ada akan error Error Code : 1060 Duplicate column name 'qty' (0 ms taken) yang aku tanyakan gimana query (mysql) tuk mengetahui apakah field sudah ada apa belum..... aku coba seperti ini : alter table tbdepo add if not exists qty integer; gak bisa di exe dan keluar error syntax salah : Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if not exists qty integer' at line 1 (0 ms taken) atas tanggapannya saya ucapkan banyak terima kasih... <untuk sementara solusinya saya pake koding di delphi-nya>

begin
   tbdepo.sql.text := 'select * from tbdepo';
   tbdepo.open;
  
   ada := false;
   for i := 0 to  tbcetak.fields.count - 1 do
   ada := ada or ( tbcetak.Fields[0].FieldName = 'qty');
  if not ada then
  begin
      tbdepo.sql.text := 'alter table tbdepo add  qty integer';
      tbdepo.open;
  end;
end;
atas tanggapannya terima kasih sekaliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii........................
user image
more 14 years ago

sukuguci

Mas Kofa, Pengalamanmu menjadi daya tarik tersendiri bagi ane. Setelah ane teliti dan bertanya pada manualnya MYSQL, ane menemukan kata-kata EXIST sebanyak 157 X, tapi tidak ada satupun kalimat yang menjelaskan penggunaan exist untuk memeriksa keberadaan field pada satu table. Ane yakin, alter ..if exist untuk kolom blm di support. :(. sory, ane beranggapan/barasumsi mas kofa make mysqlserver 5.0.45. karena mas kofa boros menggunakan hurf i dan titik,
atas tanggapannya terima kasih sekaliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii........................
banyak dan boros sekali maka ane juga kaga mo kalah. Lihat Nih Kemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmbbbbbbbbbbbbbbbbbbbbballllllllllli :)
user image
more 14 years ago

mas_kofa

@sukuguci terima kasih atas tanggapannya ... walaupun itu tanggapan anda sama sekali tidak mengandung pencerahan.........
banyak dan boros sekali maka ane juga kaga mo kalah. Lihat Nih
Jangan tidak mau kalah ama hal2 yang buruk mas......tp berlomba - lombalah dalam kebaikan ya :D
user image
more 14 years ago

ichan29

maaf aq nga ngerti mySQL, cuman baca2 mungkin kurang lebih seperti ini: $tableFields = mysql_list_fields("databasename", "tablename"); $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { $field_array = mysql_field_name($fields, $i); } if (!in_array(‘list_id’, $field_array)) { mysql_query("ALTER TABLE tablename ADD fieldname INT(11) NOT NULL DEFAULT ‘1′;"); } sorry klo salah bro
user image
more 14 years ago

dilphio7

ya macem macem jg sih solusinya, saya pake STORED PROCEDURE dan HANDLER, codenya seperti ini DELIMITER $$ DROP PROCEDURE IF EXISTS test.CHECKDUPE $$ CREATE PROCEDURE test.CHECKDUPE () BEGIN DECLARE done INT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLSTATE '42S21' SET done = 1; alter table tbdepo add qty integer; IF done = 1 then SELECT 'DUPLIKASI NAMA KOLOM'; END IF; END $$ DELIMITER ; jadi handler itu kan seperti try catch di delphi, gimana menangkap exception dari mysql langsung, tapi ya itu dia, HANDLER hanya untuk tabel jenis myisam dan innodb, dan otomatis mysql yg dibutuhkan setidaknya yang sudah support SP, CURSOR, dsb, ok deh selamat berjuang, banyak jalan menuju roma (inget dulu dosen bilang gitu) he he he.
user image
more 14 years ago

mas_kofa

terima kasih atas tanggpannya @ichan29 , @delphio7
jadi handler itu kan seperti try catch di delphi, gimana menangkap exception dari mysql langsung, tapi ya itu dia, HANDLER hanya untuk tabel jenis myisam dan innodb, dan otomatis mysql yg dibutuhkan setidaknya yang sudah support SP, CURSOR, dsb, ok deh selamat berjuang, banyak jalan menuju roma (inget dulu dosen bilang gitu) he he he.
tp sayang tujuanku bukan ke roma sich :D xixixi..............aku pengin hidup di jogja aja..........
user image
more 14 years ago

dilphio7

dilphio7@yahoo.com online Mon - Thu and Sat 8:30 - 12:00 and 13:00 - 16:30 exceptional on Sat 13:00 - 16:00, Fri 8:30 - 11:30 and 13:00 - 16:30, Friends are Welcome, no foes. nah itu jam praktek saya yang resmi, kadang-kadang diluarnya jg praktek ha ha ha, iya deh jogja forever.
user image
more 14 years ago

imunk

bro @mk anda gak nyebutin versi mysqlnya, setauku di versi 5x ada database namanya information_schema coba anda pelajari database itu disana ada tabel yg menyimpan nama database sampe nama field dari setiap tabel.... mdh2an tambah bersemangat.
user image
more 14 years ago

mas_kofa

disini (joga) saya pake mysql 5, tp sayang di client (kalimantan) masih pake mysql 4..... dan gak mau konversi ke versi 5
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com