2011-05-23 20 views
14

Çevrenizde gezinmek sadece bir formattan diğerine geçmek için gerekli talimatları bulur, ancak bunlardan hangisinin daha önce sahip olduğumu tam olarak nasıl anlayacağımı bulamıyorum.MySQL tablonun UTF-8 olup olmadığını ve storageEngine InnoDB'nin olup olmadığını nasıl kontrol edebilirim?

Nasıl I can:

1) Check what character encoding a table has? 
2) Check what storage engine a table uses? 
3) Check if all tables are certain encoding? 
4) Check if all tables have a certain storage engine? 

Teşekkür !!

+1

yararlı olabilir: http://stackoverflow.com/questions/4515490/how-do -i-know-if-a-mysql-tablo-is-myisam-veya-innodb-motor/4515794 # 4515794 – sarnold

cevap

27

Her tablonun motorunu öğrenmek için information_schema'yı kullanabilirsiniz.

select table_name,engine 
from information_schema.tables 
where table_schema = 'your_database' 

kodlama için,

show create table table_name 

kullanabilir veya daha da iyisi

select 
c.character_set_name 
from information_schema.tables as t, 
    information_schema.collation_character_set_applicability as c 
where c.collation_name = t.table_collation 
and t.table_schema = "your_db" 
and t.table_name = "table_name"; 
+0

Bu mantıklı, ama sözdizimi olduğundan emin misin? Bu hatayı alıyorum: Bilinmeyen sütun 'alan listesindeki' kullanıcılar ' – GeekedOut

+0

Merhaba. Evet eminim. Mysql> = 5.0 ile çalışan information_schema hakkında basit bir sorgulama. Ne hakkında konuşuyorsun, ilk veya ikinci sorgum mu? –

+0

İlk sorguyu deniyordum. Ama ben onunla uğraşmaya devam edeceğim – GeekedOut

İlgili konular