我可以使用以下方法“复制”表格:
像 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/