Mysql Tablo Kilitleme – Kilitli Tabloları Görüntüleme

Mysql tablo kilitleme.

Mysql tablo kilitleme.

 

Birden fazla geliştiricinin işlem yaptığı veritabanlarında, geliştiriciler geliştirmekte olduğu tabloyu kilitleyerek diğer geliştiricilerin geçici olarak erişmesini engelleyebilirler.  Bu sayede birbirinin işlemini ezme engellenmiş olur.

Mysql veritabanlarında aşağıdaki komutlar ile tablolarımızı kilitleyip, kilidini açabilir. Hangi tablolar kilitli konumda görüntüleyebiliriz.

Bir Tabloya Okuma Kilidi Koymak için:

lock TABLES tablo_adi read;

Bir Tablonun Okuma Kilidini Açmak için:

unlock TABLES tablo_adi read;

Kilitli Tabloları Görüntülemek için:

show open tables WHERE In_use > 0;
Reklamlar

SQL Server Türkçe Karakter Problemi

sql server MSSQL’de eğer databasimizin collation’u Turkish_CI_AS seçilmemişse insert yaparken türkçe karakter problemi yaşamamız mümkün. Eğer veritabanınız GoDaddy gibi yurtdışında bulunan bir hosting firmasında bulunuyorsa collation default olarak Latin1 seçilmiş olabiliyor. Bunu değiştirme yetkiniz yoksa, insert ve update yaparken stringlerimizi unicode olarak göndermemiz gerekli.

Stringleri unicode olarak göndermek için başına büyük N harfi koymamız gerekli.  Bu şekilde gönderilen tüm karakter setleri unicode olarak kaydedilecektir. Bu sayede türkçe karakterlerimiz korunmuş olacaktır.

INSERT INTO dbo.Kitaplar (yazar) VALUES(N’DEITEL’);

SQL Server Tekrarlanan Satırları Silmek

Sql Server Tekrarlanan satırları silme SQL Server‘da tekrarlanan satırları hızlı bir şekilde silmek için aşağıdaki yöntemi kullanabilirsiniz. Örnek olarak aşağıdaki kod da aynı kişinin puanının birden fazla kez veritabanına kaydedildiğini düşünelim. Yani aynı satırdan birden fazla olduğunu varsayalım, bu aynı satırlardan en eski olanı sistemimizde tutmak istiyorum. Hangisinin eski olduğuna karar vermek için unique olarak tuttuğum id’sinden faydalanacağım. Kısaca id’si küçük olan benim için eklenen en eski kayıttır.

Burada ilk olarak Min() fonksiyonunu kullanarak o kayıttan minimum id’li olan farklı değerlerin id’sini ismine göre group by yaparak çekiyorum. Sonrasında bu idlerin dışında kalan satırları not in ile seçerek siliyorum.

DELETE FROM puanlar WHERE id NOT IN
(SELECT Min(id) FROM puanlar GROUP BY isim)

Eğer en eski yerine en yeni satırı saklamak istersek Min() yerine Max() fonksiyonunu kullanabiliriz.

SQL Server Management Studio – Manuel Update Sayısını Değiştirmek

Sql server edit top 200 rows güncellemeSQL Server Management Studio‘nun en kullanışlı özelliklerinden birisi de hızlıca update ve select yapabilmemiz. Tablolara sağ tıklayıp. “Select Top 1000 Rows” ve “Edit Top 200 Rows” seçenekleri ile hızlı erişim yapabiliyoruz.  Bu bize her seferinde select ve update query yazmaktan kurtarıyor.

Ancak çok sık kullandığımız bu özellik bazen yetersiz kalıyor ve daha çok satır üzerinde işlem yapmak istiyoruz. Örneğin 200 değilde 400 satırı göstermesini istiyoruz.  Bunu ayarlamak mümkün.

Adım adım anlatmak gerekirse:

  • Üst Menüden Tools‘u seçiyoruz
  • Options seçeneğini seçiyoruz
  • Açılan pencerede SQL Server Object Explorer‘ın altından Commands‘ı seçiyoruz.
  • Table and View Options altındaki değerleri istediğimiz değerler yapıyoruz.

 

SQL Server Text Üzerinde Group By Hatası

Msq 306 Sql Error

 

Ntext ve text formatındaki alanlarda group by ve order by yapmaya çalıştığımızda aşağıdaki Msg306 hatasını alıyoruz.

“The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.”

Bu hatayı önlemek için text alanımızı Varchar’a cast etmemiz gerekli. Sonrasında group by ve order by sorgularımız çalışacaktır.


use master
select top 1000 
CAST(TextData AS NVARCHAR(500)), SUM(reads) toplam 
from Hastane1dk
group by  CAST(TextData AS NVARCHAR(500))
order by toplam desc