mysql tablosunda idler karışık gözüküyor nasıl düzetebiliriz ?
mysql tablosunun idleri database yedegini alırken düz göstermiyor yani
1
2
456
457
gibi sıralanıyor bunu düz sıralanması için ne yapmamız gerekir ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (12)
aşağıdaki gibi sıralanması gerekmez miydi ? ne yapmamız gerekiyor?
(1, 'stat', 'ankara', 'ankara geliyor', 'ankara statyumu'),
(4, 'stat', 'manisa', 'manisa geliyor', 'manisa statyumu'),
(5, 'stat', 'van', 'van geliyor', 'van statyumu'),
(6, 'stat', 'artvin', 'artvin geliyor', 'artvin statyumu'),
(606, 'stat', 'ardahan', 'ardahan geliyor', 'ardahan statyumu'),
(607, 'stat', 'aksaray', 'aksaray geliyor', 'aksaray statyumu'),
(608, 'stat', 'duzce', 'duzce geliyor', 'duzce statyumu');
(644, 'stat', 'adana', 'adana geliyor', 'adana statyumu'),
(645, 'stat', 'batman', 'batman geliyor', 'batman statyumu'),
(646, 'stat', 'karaman', 'karaman geliyor', 'karaman statyumu'),
Senden resim istiycem
- Tablo yapının resmi tam ekran olsun alttaki bilgilerde dahil.
- Anasayfada php sürümü falan bulunuyor phpmyadminde (Veritabanı Sunucu Hakkında)
hatayı almaya devam ediyorum ;
Hata
SQL sorgusu: Kopyala
UPDATE yukselenses SET id=@autoid := (@autoid+1);
MySQL çıktısı: Belgeler
#1062 - Duplicate entry '2' for key 'PRIMARY'
ilgili tabloyu sildim ve dışarı aktararak bu aşağıdaki kodu hem sql tablosunun altına yazdım denedim tablo düzelmedi
sonra create tablonun altına yazmayı denedim fakat tablodaki idler yine karışık gözüküyor bir düzetlme kodu olması
lazım php my adminde ilgili tablonun id satırına tıklayınca 0,1,2,3 gibi düzgün sıralanabiliyor baştan aşağı ve
aşağıdan başa sıralanıyor fakat tablonun düzeltilmesinde başarılı olamadım.
SET @autoid :=0;
UPDATE yukselenses SET id=@autoid := (@autoid+1);
ALTER TABLE yukselenses AUTO_INCREMENT=1;
daha öncede phpmyadminde sutuna satırlara tıklanınca igili satır düzeltme için işlem
yapamıyor hatası alıyordum o düzelebildi fakat bu id sıralaması işleminde başarılı olamadım.
Merhaba dostum @emmir2 hocamızın paylaştığı kodda hiç bir sıkıntı yok sıkıntı senin tablondaki id
değerinde auto_increment
özelliğinin aktif edilmemesi.
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Anamakine: localhost
-- Üretim Zamanı: 09 Eki 2023, 15:25:17
-- Sunucu sürümü: 11.1.0-MariaDB-log
-- PHP Sürümü: 8.1.10
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Veritabanı: `VERİTABANI_ADI`
--
-- --------------------------------------------------------
--
-- Tablo için tablo yapısı `yukselenses`
--
CREATE TABLE `yukselenses` (
`id` int(11) NOT NULL,
`kat` text NOT NULL,
`seo` text NOT NULL,
`baslik` text NOT NULL,
`icerik` text DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
--
-- Tablo döküm verisi `yukselenses`
--
INSERT INTO `yukselenses` (`id`, `kat`, `seo`, `baslik`, `icerik`) VALUES
(1, 'stat', 'ankara', 'ankara geliyor', 'ankara statyumu'),
(4, 'stat', 'manisa', 'manisa geliyor', 'manisa statyumu'),
(5, 'stat', 'van', 'van geliyor', 'van statyumu'),
(6, 'stat', 'artvin', 'artvin geliyor', 'artvin statyumu'),
(644, 'stat', 'adana', 'adana geliyor', 'adana statyumu'),
(645, 'stat', 'batman', 'batman geliyor', 'batman statyumu'),
(646, 'stat', 'karaman', 'karaman geliyor', 'karaman statyumu'),
(606, 'stat', 'ardahan', 'ardahan geliyor', 'ardahan statyumu'),
(607, 'stat', 'aksaray', 'aksaray geliyor', 'aksaray statyumu'),
(608, 'stat', 'duzce', 'duzce geliyor', 'duzce statyumu');
--
-- Dökümü yapılmış tablolar için indeksler
--
--
-- Tablo için indeksler `yukselenses`
--
ALTER TABLE `yukselenses`
ADD PRIMARY KEY (`id`);
--
-- Dökümü yapılmış tablolar için AUTO_INCREMENT değeri
--
--
-- Tablo için AUTO_INCREMENT değeri `yukselenses`
--
ALTER TABLE `yukselenses`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=647;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
--
-- id sıralama kodu (@emmir2)
--
SET @autoid :=0;
UPDATE yukselenses SET id=@autoid := (@autoid+1);
ALTER TABLE yukselenses AUTO_INCREMENT=1;
emmir2 hocam ben dediğim hatayı almaya devam ediyorum .
peki siz hata almadığınızı söylediniz ?
hata almadığınız görüntünün dışında igili mysql tablosunun görüntüsünü koyarmısınız ?
(1, 'stat', 'ankara', 'ankara geliyor', 'ankara statyumu'),
(4, 'stat', 'manisa', 'manisa geliyor', 'manisa statyumu'),
(5, 'stat', 'van', 'van geliyor', 'van statyumu'),
(6, 'stat', 'artvin', 'artvin geliyor', 'artvin statyumu'),
(606, 'stat', 'ardahan', 'ardahan geliyor', 'ardahan statyumu'),
(607, 'stat', 'aksaray', 'aksaray geliyor', 'aksaray statyumu'),
(608, 'stat', 'duzce', 'duzce geliyor', 'duzce statyumu'),
(644, 'stat', 'adana', 'adana geliyor', 'adana statyumu'),
(645, 'stat', 'batman', 'batman geliyor', 'batman statyumu'),
(646, 'stat', 'karaman', 'karaman geliyor', 'karaman statyumu');
muhtemelen yukarıdaki gibi mysql php myadmin görüntüsü oluşması lazım.
hata almadığınızı ve kodun çalıştığını söylediniz ?
googlede igili kodun tabloyu kompile sıfırlayacağı yazıyor ?
düzeltileceği ile igili kodu bulamadım .
phpmyadmin de tablo içindeyken üst kısımda SQL kısmına girip
SET @autoid :=0;
UPDATE yukselenses SET id=@autoid := (@autoid+1);
ALTER TABLE yukselenses AUTO_INCREMENT=1;
bunu yapıştırırsan idler otomatik olarak düzenlenecektir hocam
https://i.hizliresim.com/oc10kc8.png
test ettim bir hata almadım
sql yapısından kastınız database yapısı mı ?
--
-- Table structure for table `yukselenses`
--
CREATE TABLE `yukselenses` (
`id` int(11) NOT NULL,
`kat` text NOT NULL,
`seo` text NOT NULL,
`baslik` text NOT NULL,
`icerik` text DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
--
-- Dumping data for table `yukselenses`
--
INSERT INTO `yukselenses` (`id`, `kat`, `seo`, `baslik`, `icerik`) VALUES
(1, 'stat', 'ankara', 'ankara geliyor', 'ankara statyumu'),
(4, 'stat', 'manisa', 'manisa geliyor', 'manisa statyumu'),
(5, 'stat', 'van', 'van geliyor', 'van statyumu'),
(6, 'stat', 'artvin', 'artvin geliyor', 'artvin statyumu'),
(644, 'stat', 'adana', 'adana geliyor', 'adana statyumu'),
(645, 'stat', 'batman', 'batman geliyor', 'batman statyumu'),
(646, 'stat', 'karaman', 'karaman geliyor', 'karaman statyumu'),
(606, 'stat', 'ardahan', 'ardahan geliyor', 'ardahan statyumu'),
(607, 'stat', 'aksaray', 'aksaray geliyor', 'aksaray statyumu'),
(608, 'stat', 'duzce', 'duzce geliyor', 'duzce statyumu');
peki ne yapmamız gerekir emmir2 hocamın verdiği kodla şu hatayı alıyorum ;
Error
SQL query: Copy
UPDATE stadyumlar SET id=@autoid := (@autoid+1);
MySQL said: Documentation
#1062 - Duplicate entry '2' for key 'PRIMARY'
php myadmine girince ilgili tabloda sıralamalar idlerin düzensiz gösteriyor
son id rakamı en sona gelecek şekilde ilgili tabloyu nasıl düzetebilirim ?
3 ile 455 arasinda daha onceden kayit olusmustur, bunu sifirlayabiliyorsun ama o zaman mevcut id'lerin sikintiya duser, yani zaten yeni bir kayitta 458'den devam edecek, tabloyu bosaltirsan sifirlanacaktir, eger onemsizse icindeki degerler sifirdan baslatmak icin tabloyu sifirlayabilirsin