• TC Kimlik Numaranızı onaylayarak iyinet.com'dan tam olarak yararlanabilirsiniz. Konu açabilmek ve açılan konulara yazabilmek için lütfen Türkiye Cumhuriyeti Kimlik Numaranızı doğrulayın. Doğrulama ile ilgili hata alıyorsanız, kimlik ön yüzündeki Ad Soyad, Doğum yılı ve TC Kimlik numarası görünecek şekilde kimlik resmini bize gönderebilirsiniz.

    deneme bonusu veren siteler cratosroyalbet pubg uc smm panel smm panel

mysql da çift kayıtlar

hakimi

0
Bilgiler
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaction score
0
Puanları
0
210 Aydır Üye
arkadşlar. mysql da bulunan çift kayıtları nasıl silebilirim. mesela 20.000 lik bir db de 1500 tane çift kayıt var diyelim. çift kayıtları nasıl teke düşürebiliriz??
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaction score
53
Puanları
51
Şube
Sakarya
257 Aydır Üye
arkadşlar. mysql da bulunan çift kayıtları nasıl silebilirim. mesela 20.000 lik bir db de 1500 tane çift kayıt var diyelim. çift kayıtları nasıl teke düşürebiliriz??

Cift kayitlarin oldugu tablo adinin ciftli_tablo ve cift kayitlarin email alani uzerinde oldugunu varsayalim.

CREATE TABLE tekil_tablo select * from ciftli_tablo where 1=2;
ALTER TABLE tekil_tablo ADD PRIMARY KEY (email);
INSERT IGNORE INTO tekil_tablo SELECT * FROM ciftli_tablo;
RENAME TABLE ciftli_tablo TO ciftli_tablo_eski;
RENAME TABLE tekil_tablo TO ciftli_tablo;

Bu komutlari calistirmanizin ardindan ciftli_tablo da artik tum emailler tekil olacaktir.

Eger cift kayitlar 1 den fazla alan uzerinde ise yukaridaki komut zincirindeki 2. satirdaki komutu asagidaki sekilde degistirebilirsiniz:

ALTER TABLE tekil_tablo ADD PRIMARY KEY (email,ad,soyad,adres);
 
Bilgiler
Katılım
26 Eylül 2006
Mesajlar
5,893
Reaction score
96
Puanları
0
Şube
www.odatv.com
207 Aydır Üye
merhabalar , benimde yorum tablomda yorumlar bazen çift ve daha çok çıkabiliryor.
ne yapabilirim , yardımcı olması bakımından tablo aşağıda ;

CREATE TABLE `iddap_comments` (
`pid` mediumint(10) NOT lisanssız default '0',
`msg_id` mediumint(10) NOT lisanssız auto_increment,
`msg_author` varchar(25) NOT lisanssız default '',
`msg_body` text NOT lisanssız,
`msg_date` datetime NOT lisanssız default '0000-00-00 00:00:00',
`msg_raw_ip` tinytext,
`msg_hdr_ip` tinytext,
`author_md5_id` varchar(32) NOT lisanssız default '',
`author_id` int(11) NOT lisanssız default '0',
PRIMARY KEY (`msg_id`),
KEY `com_pic_id` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Used to store comments made on pics' AUTO_INCREMENT=9954 ;
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaction score
53
Puanları
51
Şube
Sakarya
257 Aydır Üye
merhabalar , benimde yorum tablomda yorumlar bazen çift ve daha çok çıkabiliryor.
ne yapabilirim , yardımcı olması bakımından tablo aşağıda ;

CREATE TABLE `iddap_comments` (
`pid` mediumint(10) NOT lisanssız default '0',
`msg_id` mediumint(10) NOT lisanssız auto_increment,
`msg_author` varchar(25) NOT lisanssız default '',
`msg_body` text NOT lisanssız,
`msg_date` datetime NOT lisanssız default '0000-00-00 00:00:00',
`msg_raw_ip` tinytext,
`msg_hdr_ip` tinytext,
`author_md5_id` varchar(32) NOT lisanssız default '',
`author_id` int(11) NOT lisanssız default '0',
PRIMARY KEY (`msg_id`),
KEY `com_pic_id` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Used to store comments made on pics' AUTO_INCREMENT=9954 ;

Yukarida anlattiklarim gecerli yine.
Cift kayitlar hangi kayit ustunde ise o tablo uzerinde primary key yaratin, yada unique index.

CREATE TABLE tekil_tablo select * from iddap_comments where 1=2;
ALTER TABLE tekil_tablo ADD PRIMARY KEY (msg_body);
INSERT IGNORE INTO tekil_tablo SELECT * FROM iddap_comments;
RENAME TABLE iddap_comments TO iddap_comments_eski;
RENAME TABLE tekil_tablo TO iddap_comments;
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaction score
53
Puanları
51
Şube
Sakarya
257 Aydır Üye

hakimi

0
Bilgiler
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaction score
0
Puanları
0
210 Aydır Üye
Çok teşekkürler iyinet. Yardımların için. Sorunumuz çözüldü :)))
 

Ozcan

0
Bilgiler
Katılım
12 Mayıs 2007
Mesajlar
3,749
Reaction score
59
Puanları
0
Yaş
42
Şube
Antalya
200 Aydır Üye
hocam benim de sorunum şu id alanı primari key birde email alanı var. Şimdi çift mail ile kayıt girilmemesi için mail alanını primery key yapmaya çalışıyorum şu hata çıkıyor.

ALTER TABLE `ytb` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `mail` )

MySQL çıktısı: Belgeler
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

tabloyu silip yeniden denedim bu sefer id alanıyla mail alanını ikisini birden primery key yapıyor bu yüzden gene mail adresleri yeniden girile biliyor. Access gibi çalıştığını zannediyorum. Mysql i yeni yeni öğreniyorumda. Yani benim kayıtlı olan kayıtları girmemem için muhtemelen mail alanını primary key yapmam lazım fakat varchar(50) olduğundan mı dır yoksa id alanının auto incornet olmasından mıdır bi türlü bulamadım . kayıt işlemleride seri bir şekilde 15 li yapılıyor yani sürekli bu varmı bunu kontrol et deyip sonra kayıt yaptırmak biraz işleri uzatır.
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaction score
53
Puanları
51
Şube
Sakarya
257 Aydır Üye
hocam benim de sorunum şu id alanı primari key birde email alanı var. Şimdi çift mail ile kayıt girilmemesi için mail alanını primery key yapmaya çalışıyorum şu hata çıkıyor.

ALTER TABLE `ytb` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `mail` )

MySQL çıktısı: Belgeler
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

tabloyu silip yeniden denedim bu sefer id alanıyla mail alanını ikisini birden primery key yapıyor bu yüzden gene mail adresleri yeniden girile biliyor. Access gibi çalıştığını zannediyorum. Mysql i yeni yeni öğreniyorumda. Yani benim kayıtlı olan kayıtları girmemem için muhtemelen mail alanını primary key yapmam lazım fakat varchar(50) olduğundan mı dır yoksa id alanının auto incornet olmasından mıdır bi türlü bulamadım . kayıt işlemleride seri bir şekilde 15 li yapılıyor yani sürekli bu varmı bunu kontrol et deyip sonra kayıt yaptırmak biraz işleri uzatır.

PRIMARY KEY i drop etme, o autoincrement icin gerekli.
mail i tekil yapmak icin

ALTER TABLE `ytb` ADD UNIQUE (`mail` ) ;
 
  • Yararlı
Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır.
Üst