Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?
like image 569
GeekedOut Avatar asked May 23 '11 22:05

GeekedOut


People also ask

How do you check if MySQL table is InnoDB?

To determine whether your server supports InnoDB : Issue the SHOW ENGINES statement to view the available MySQL storage engines. mysql> SHOW ENGINES; Alternatively, query the INFORMATION_SCHEMA.

How do I change MySQL encoding to UTF-8?

To change the character set encoding to UTF-8 for the database itself, type the following command at the mysql> prompt. Replace dbname with the database name: Copy ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci; To exit the mysql program, type \q at the mysql> prompt.

What is the difference between utf8mb4 and UTF-8 charsets in MySQL?

MySQL supports multiple Unicode character sets: utf8mb4 : A UTF-8 encoding of the Unicode character set using one to four bytes per character. utf8mb3 : A UTF-8 encoding of the Unicode character set using one to three bytes per character. This character set is deprecated in MySQL 8.0, and you should use utfmb4 instead.

What is UTF-8 MySQL?

MySQL UTF-8 is actually a partial implementation of the full UTF-8 character set. Specifically, MySQL UTF-8 encoding uses a maximum of 3 bytes, whereas 4 bytes are required for encoding the full UTF-8 character set.


1 Answers

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";
like image 144
Nicola Cossu Avatar answered Oct 12 '22 19:10

Nicola Cossu