当我们在这种情况下创建表的副本时,不会复制旧表CONSTRAINT,我使用
create table new_table like old_table;
所以我这样做,我们也可以复制old_table CONSTRAINT。
答案 0 :(得分:2)
CREATE TABLE ... LIKE不保留为原始表或任何外键定义指定的任何DATA DIRECTORY或INDEX DIRECTORY表选项。
CREATE TABLE ... SELECT不会自动为您创建任何索引。这样做是为了使声明尽可能灵活。如果要在创建的表中包含索引,则应在SELECT语句之前指定这些索引。
<强>结论强>
所以换句话说它不是直接可能的..
解决方法
在我的项目中,我几乎总是使用SHOW CREATE TABLE old_table
来获取SQL并手动调整代码。
答案 1 :(得分:1)
试试这个
CREATE TABLE new_table LIKE old_table;
然后插入
INSERT INTO new_table SELECT * FROM old_table;
答案 2 :(得分:1)
已在documentation中指定。
CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
答案 3 :(得分:0)
尝试这两个查询
CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;