mysql - 何时 CREATE TABLE AS SELECT 与 CREATE TABLE LIKE?

标签 mysql sql database select create-table

我可以使用以下方法“复制”表格:
像 original_table 一样创建表副本

CREATE TABLE copy as select * from original_table

在后一种情况下,仅复制数据而不复制主键等
所以我想知道我什么时候更喜欢使用 select as

最佳答案

它们做不同的事情。 CREATE TABLE LIKE 创建一个与原始表具有相同结构的表。

CREATE TABLE AS SELECT 将数据插入到新表中。结果表不为空。此外,CREATE TABLE AS SELECT 通常用于更复杂的查询,以生成临时表。在这种情况下没有“原始”表。查询的结果只是捕获为一个表。

编辑:

备份的“标准”方法是使用 . . . . 备份 在数据库级别。这将备份数据库中的所有对象。备份多个表很重要,例如,对于维护对象之间的关系完整性。

如果您只想要一个表的真实副本,请先执行create table like,然后insert into。但是,这会对 auto_increment 字段提出挑战。您可能希望删除列上的 auto_increment 属性,以便填充此类列。

关于mysql - 何时 CREATE TABLE AS SELECT 与 CREATE TABLE LIKE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411753/

相关文章:

sql - 历史/可审核的数据库

php - 自动递增问题 - 递增 10

php - 比较mysql中同一连接行的两列

mysql - 如何为两个表设置不同的自增id

Oracle Many OR vs IN ()的SQL性能调优

java - 在 weblogic 12c 中添加数据源

javascript - 如何从 php 变量中获取值到我们的 javascript 文件中?

mysql - 如何在以下查询中使用正则表达式?

mysql - BTREE的优势?

PHP成员(member)资格时间和有效期