【发布时间】:2019-11-27 06:41:17
【问题描述】:
手头的任务: 需要在 MySQL 中创建表,从另一个数据库的 Information.Schema 中的列表转储。我无权访问原始数据库或数据库架构师。我想知道在 CREATE TABLE 语句中指定从原始数据库的 Information_Schema 中提取的以下哪些属性CAN。目标是创建一个与原始表格相同的表格。
手头的问题: 我了解其中一些属性是用户在创建表时指定的,而有些可能是 MySQL 从表中的数据计算出来的。虽然我正在阅读和理解这些属性中的每一个,但我无法快速确定下面列出的哪些属性是由 MySQL 计算的,而不是用户指定的,因此在编写 CREATE TABLE 语句时可以忽略。
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_PRECISION_RADIX
NUMERIC_SCALE
DATETIME_PRECISION
CHARACTER_SET_CATALOG
CHARACTER_SET_SCHEMA
CHARACTER_SET_NAME
COLLATION_CATALOG
COLLATION_SCHEMA
COLLATION_NAME
DOMAIN_CATALOG
DOMAIN_SCHEMA
DOMAIN_NAME
【问题讨论】:
-
information_schema.columns表不会为您提供您需要的一切,如果您想重新创建原始的 create table 语句。您还需要information_schema.tables,它将为您提供引擎(可能是默认的innodb,但可以肯定的是),statistics将为您提供密钥,key_column_usage和referential_constraints任何外键定义。
标签: mysql create-table information-schema