【发布时间】:2017-09-12 06:35:01
【问题描述】:
在没有create table ...的情况下是否有机会通过查询infirmation_schema来创建表?
感谢您的回答。
【问题讨论】:
在没有create table ...的情况下是否有机会通过查询infirmation_schema来创建表?
感谢您的回答。
【问题讨论】:
没有
create table ...???
简单的回答否。 CREATE TABLE 语句的唯一目的是创建一个数据库表。通常CREATE Object 语句用于创建数据库对象。除非您开发自己的 RDBMS 产品,否则没有其他替代方法。
如果您感到困惑,请阅读Documentation 并清楚地说明
INFORMATION_SCHEMA 提供对数据库元数据、信息的访问 有关 MySQL 服务器的信息,例如数据库或表的名称, 列的数据类型,或访问权限。
是的,它是只读的。
【讨论】:
当然,Information_schema DB 是只读的。 但是在 MySQL 中,视图没有排序。例如,在这个 DDL 中:“创建视图 q1 作为从 q2 中选择 a.* 作为内部连接 t1 作为 a.col1=b.col1 上的 b”。 如果不创建第一个 q2,则无法创建 q1。如果您从 information.views 中提取 DDL,则 Q1 DDL 位于 Q2 DDL 之前。 为了简单地解决这个问题,我们只需要在表information_schema.views中添加一列auto_increment,或者更好地在表information_schema.innodb_sys_tables中。
【讨论】:
它被称为 information_schema 而不是 create_schema。所以你只能在那里阅读信息。
【讨论】: