• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • CREATE TABLE ... LIKE语句

    用于CREATE TABLE ... LIKE根据另一个表的定义创建一个空表,包括在原始表中定义的任何列属性和索引:

    CREATE TABLE new_tbl LIKE orig_tbl;
    

    使用与原始表相同的表存储格式版本创建副本。该SELECT权限需要对原始表。

    LIKE仅适用于基表,不适用于视图。

    重要

    您无法执行CREATE TABLECREATE TABLE ... LIKELOCK TABLES语句生效时执行。

    CREATE TABLE ... LIKE与进行相同的检查CREATE TABLE。这意味着,如果当前的SQL模式与创建原始表时有效的模式不同,则该表定义可能被认为对新模式无效,并且该语句将失败。

    对于CREATE TABLE ... LIKE,目标表保留从原始表生成的列信息。

    对于CREATE TABLE ... LIKE,目标表保留原始表中的表达式默认值。

    对于CREATE TABLE ... LIKE,目标表保留CHECK原始表中的约束,但会生成所有约束名称。

    CREATE TABLE ... LIKE不保留为原始表指定的任何DATA DIRECTORYINDEX DIRECTORY表选项,或任何外键定义。

    如果原始表是TEMPORARY表,CREATE TABLE ... LIKE则不保留TEMPORARY。要创建TEMPORARY目标表,请使用CREATE TEMPORARY TABLE ... LIKE

    mysql表空间,InnoDB系统表空间(innodb_system)或常规表空间TABLESPACE中创建的表在表定义中包含一个属性,该属性定义了表所驻留的表空间。由于临时回归,无论设置如何,都将CREATE TABLE ... LIKE保留TABLESPACE属性并在定义的表空间中创建表innodb_file_per_table。为了避免在TABLESPACE基于此类表的定义创建空表时使用该属性,请改用以下语法:

    CREATE TABLE new_tbl SELECT * FROM orig_tbl LIMIT 0;