Syntax:
SHOW CREATE TABLE tbl_name

Shows the CREATE TABLE statement that creates the named table. To use
this statement, you must have some privilege for the table. This
statement also works with views.

As of MySQL 8.0.16, MySQL implements CHECK constraints and SHOW CREATE
TABLE displays them. All CHECK constraints are displayed as table
constraints. That is, a CHECK constraint originally specified as part
of a column definition displays as a separate clause not part of the
column definition. Example:

mysql> CREATE TABLE t1 (
         i1 INT CHECK (i1 <> 0),      -- column constraint
         i2 INT,
         CHECK (i2 > i1),             -- table constraint
         CHECK (i2 <> 0) NOT ENFORCED -- table constraint, not enforced
       );

mysql> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `i1` int(11) DEFAULT NULL,
  `i2` int(11) DEFAULT NULL,
  CONSTRAINT `t1_chk_1` CHECK ((`i1` <> 0)),
  CONSTRAINT `t1_chk_2` CHECK ((`i2` > `i1`)),
  CONSTRAINT `t1_chk_3` CHECK ((`i2` <> 0)) /*!80016 NOT ENFORCED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

SHOW CREATE TABLE quotes table and column names according to the value
of the sql_quote_show_create option. See
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html.

For information about how CREATE TABLE statements are stored by MySQL,
see
https://dev.mysql.com/doc/refman/8.0/en/create-table-statement-retentio
n.html.

URL: https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html

