Merhaba,
Farklı 2 tabloya veri yükleyeceğim. Tabloları ve özelliklerini hallettim. İskeleti giydirdim yani.Şimdi verileri yükleyeceğim.
2 tablonunda 2 "id" adlı sutunu var. auto_increment ve benzersiz.
Ben 2 tablodan da id yardımı ile aynı anda veri çekebiliyorum.
Şimdi benim sorunum:
INSERT INTO `tablo_a` (`veri`) VALUES
('ABC'),
('CBA'),
('BAC');
olarak 1000 tane veri gireceğim. Bir tabloda isimler ve id'ler diğer tabloda da bu isimlere ait bilgiler var. Bu yüzden 16 nolu id ile aynı satırda olan isimin yine diğer tabloda 16 nolu id ile aynı satırdaki bilgileri vermesi lazım.
Ancak verileri yükleyince auto_increment 36 dan başlıyor vs. Bunun önüne nasıl geçerim ve farkı 2 tabloya aynı id ile 1 satır veri nasıl girebilirim ?
Teşekkürler
Mysql hakkında soru
10
●1.046
- 04-08-2009, 10:29:08Evet 2 çözüm yolu var fakat 1. si yanlış. Şu yönden yanlış. auto_increment kolon olduğundan dolayı sillip tekrar eklesende kaldığı yerden devam eder örneğin en son id birinde 1039 diğerinde 1020 ise buradan devam ederki zaten arkadaşta bunu nasıl aşarım diyor.
1. yol auto_increment kullanmamak ve manuel olarak kendin ID atarsın.
2. yol ise ki ben bunu öneriyorum. Bir tablo daha oluşturursunuz. Bu oluşturduğunuz tabloda IDler kaydedilir.
birincitablo----|------ikincitablo
---20---------|----------29
---21---------|----------30
gibi.
En iyi yol 2. yoldur ve birçok kişi ikinci yolu kullanmaktadır. Kolay gelsin. - 04-08-2009, 14:27:44Üyeliği durduruldu1 - auto_increment resetleme:
phpmyadmin ile db ye bağlan, tabloyu seç. yukarıdaki linklerden İşlemler e tıkla. açılan sayfada Tablo seçenekleri kısmında AUTO_INCREMENT yazıyor. oraya kaçtan başlamasını istiyorsan onu yaz. en küçük değer olarak 0 değil 1 gir.
veya mysql sorgusu olarak şunu da çalıştırabilirsin;
ALTER TABLE `tabloadi` AUTO_INCREMENT =1
2 - 2 tabloya senkronize veri girme:
eğer ilk şıktakini yaparsan her 2 tablonunda auto_increment değeri aynı olacağı için her ikisinede sıra ile veri girersen bir sorun çıkmaz. ama hem sorun çıkması olasılığını göz önüne alarak hem de programlama mantığı açısından şunu yapmalısın; önce ilk tablona verileri teker teker girersin. bu sorguların hemen ardından mysql_insert_id komutu ile girilen verinin id sini alır diğer tabloya veri girerken kullanırsın. böylece hata oluşma olasılığı ortadan kalkar. - 04-08-2009, 14:28:03Bir PHP öğrencisi olarak fikir belirtmek isterim.
Konuyu tam anlayıp anlamadığımı bilmiyorum tabii. Eğer aynı anda 2 tabloya veri yüklemek istiyorsanız o zaman SQL sorgu bölümünde her iki tablonun ID'lerini eşitlemeniz gerekmiyor mu?
Veri çekerken şöyle yapıyoruz ya !
("SELECT * FROM tablo_a" . "\n INNER JOIN tablo_b ON tablo_a.id = tablo_b.id" . "\n WHERE yazbirsey ORDER BY yazbirsey"vs vs.
Bu mantık veri yüklemede de kullanılamaz mı? - 05-08-2009, 14:46:46MC_delta_T
Şimdi "ad" adlı tabloda "id" ve "ad_soyad" sütunları var
"maas" adlı tabloda ise yine "id" ve "ucret" adlı sütunlar var.
Ben isim araması yapıp ilk tabloda, 2. tablodan aynı id den ücret verisine ulaşıyorum.
Şimdi tam olarak ne yapabilirim anlamadım.
Insert into ile ad-soyadları veri olarak gireceğim ama id nasıl veririm ki? Insert komutuna her kişi için manuel olarak 1,2,3 yapamam ki. - 05-08-2009, 15:06:40Üyeliği durduruldusilme derken delete from tablo yerine truncate tablo kullanirsaniz otomatik artan sayiyida temizlemiş olursunuzelectronicboy adlı üyeden alıntı: mesajı görüntüle
- 05-08-2009, 15:25:51Üyeliği durdurulduneden yapamazsın?Cagatayh adlı üyeden alıntı: mesajı görüntüle