How to check if MySQL table is UTF-8 and has storageEngine InnoDB?
Asked Answered
S

1

21

Googling around just finds instructions for changing from one format to another, but I can't seem to find how exactly to make sure which of these I have first.

How can I:

  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?
Supercolumnar answered 23/5, 2011 at 22:7 Comment(1)
This may be useful: #4515990Punctilio
M
36

You can use information_schema in order to know the engine of each table.

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

For the encoding you can use

show create table table_name

or, even better

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";
Methodize answered 23/5, 2011 at 22:9 Comment(5)
It makes sense, but are you sure that is the syntax? I get this error: Unknown column 'users' in 'field list'Supercolumnar
Hi. Yes, I'm sure. It's a simple query on the information_schema that works with mysql >= 5.0. What are you talking about, my first or second query?Methodize
I was trying the first query. But I'll keep hacking around with itSupercolumnar
Oh I know what I was doing wrong..I was plugging in the actual table name in the select clause of the first query lol....ok all works super nicely - thank you!Supercolumnar
Glad I could help you. Bye :)Methodize

© 2022 - 2024 — McMap. All rights reserved.