MySQL'de ALTER komutunun olmaması (stored procedure'ler için) bence hiç de iyi değil. Sürekli olarak, DROP/CREATE ikilisini kullanıyoruz.
Bir de dikkat etmeniz gereken bir durum var. Diyelim ki tablonuzda iki VARCHAR türlü alan var ve siz SELECT ederken bu alanları yanyana görebileceğiniz yeni bir sanal alan oluşturmak istiyorsunuz:
Bu durumda hepimizin beklentisi Alan1 ve Alan2 'nin toplamı yani iki string ifadenin yanyana gelmesinden oluşan yeni string'in BenimYeniAlanim isimli alanda görüntülenmesi. Öyle değil mi ? Ancak dikkat edin, MySQL iki string ifadenin + simgesi ile toplamını sizin için DOUBLE'a çevirecek. Neden böyle bir şey yapar ? Neden her dilde olan string toplama MySQL'de çalışmaz ? MySQL'i yazan coder'ların kafası mı güzeldi ? Bunlar bilinmez, ama ben size yapması gereken işlevselliği sunan CONCAT fonksiyonunu önermek zorunda kalıyorum.
Bir de dikkat etmeniz gereken bir durum var. Diyelim ki tablonuzda iki VARCHAR türlü alan var ve siz SELECT ederken bu alanları yanyana görebileceğiniz yeni bir sanal alan oluşturmak istiyorsunuz:
SELECT B.Alan1, B.Alan2, B.Alan1 + '-' + B.Alan2 AS BenimYeniAlanim FROM BenimTablom B;
Bu durumda hepimizin beklentisi Alan1 ve Alan2 'nin toplamı yani iki string ifadenin yanyana gelmesinden oluşan yeni string'in BenimYeniAlanim isimli alanda görüntülenmesi. Öyle değil mi ? Ancak dikkat edin, MySQL iki string ifadenin + simgesi ile toplamını sizin için DOUBLE'a çevirecek. Neden böyle bir şey yapar ? Neden her dilde olan string toplama MySQL'de çalışmaz ? MySQL'i yazan coder'ların kafası mı güzeldi ? Bunlar bilinmez, ama ben size yapması gereken işlevselliği sunan CONCAT fonksiyonunu önermek zorunda kalıyorum.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...