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;

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.

C# Query’den Tek Bir İnteger Döndürmek

Database’imiz bağlandıktan sonra toplam gibi tek bir integer değer döndürmek istediğimizde ExecuteScalar() methodunu kullanıyoruz.


SqlConnection con = new SqlConnection(".........................");
con.Open();

query404 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=404 ";
query500 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=500 ";

SqlCommand cmd404 = new SqlCommand(query404, con);
SqlCommand cmd500 = new SqlCommand(query500, con);

int er404 = (int)cmd404.ExecuteScalar();
int er500= (int)cmd500.ExecuteScalar();

con.Close();

C# Mysql Database Bağlantısı

Veritabanı bağlantımızı bir sınıf olarak oluşturabilir, sonrasında bu sınıfı çağırarak bağlantımızı sağlayabiliriz.
Ancak öncelikle projemize MySql.Data.dll dosyasını import etmemiz gerekmektedir.


using MySql.Data.MySqlClient;


    public class DatabaseController
    {

        public MySqlConnection connection;

        public DatabaseController()
        {
            MySqlConnectionStringBuilder connectionString = new MySqlConnectionStringBuilder();
            connectionString.Server = "10.22.22.22";
            connectionString.UserID = "username";
            connectionString.Password = "pass";
            connectionString.Database = "dbname";
            this.connection = new MySqlConnection(connectionString.ToString());

        }
    }

Şimdi de bağlantımız gerçekleştirelim.


        DatabaseController db;
        db = new DatabaseController();
        db.connection.Open();