创建表LIKE A1为A2

Jig*_*rto 52 mysql

我想创建一个新表,其中包含旧表的属性,没有重复项.我想做这样的事情:

CREATE TABLE New_Users  LIKE Old_Users, 
AS
(SELECT * FROM Old_Users GROUP BY ID) ;
Run Code Online (Sandbox Code Playgroud)

但上述情况并不奏效.任何人都可以修改它吗?

fan*_*nts 95

你的尝试并没有那么糟糕.你必须这样做LIKE,是的.

手册中它说:

使用LIKE基于另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引.

所以你也是:

CREATE TABLE New_Users  LIKE Old_Users;
Run Code Online (Sandbox Code Playgroud)

然后插入

INSERT INTO New_Users SELECT * FROM Old_Users GROUP BY ID;
Run Code Online (Sandbox Code Playgroud)

但你不能在一个声明中这样做.

  • 只是要注意,这不会从源表中复制外键。我在复制表中不需要它们,但是其他人可能需要。 (3认同)