从两个或多个现有表创建一个新表(MySQL)

时间:2012-04-23 09:48:30

标签: mysql

问题:

是否可以从两个或更多现有表中在mySQL中创建表?

详细说明:

我可以像这样创建一个表:

CREATE TABLE IF NOT EXISTS USERNAME ( AGE INT NOT NULL )
CREATE TABLE IF NOT EXISTS USERAGE ( NAME VARCHAR(100) NOT NULL )
CREATE TABLE IF NOT EXISTS USER LIKE USERNAME LIKE USERAGE;

我无法做出Reference Manual的正面或反面:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }

尾随(LIKE old_tbl_name)是否意味着发生了LIKE old_tbl_name的一次或多次?

如果可能,那么相同名称列或两个主要ID会发生什么?

编辑:我正在尝试使用现有表的架构来定义新表,尝试使用现有表的内容填充新表。< / p>

1 个答案:

答案 0 :(得分:4)

怎么样:

CREATE TABLE IF NOT EXISTS USER SELECT * FROM USERNAME, USERAGE WHERE FALSE;

您可以在SELECT关键字之前的新表格中指定所需的任何索引,或者像SELECT右侧一样重命名列/选择一些子集:

CREATE TABLE IF NOT EXISTS USER (PRIMARY KEY(UNAME)) SELECT NAME AS UNAME -- etc

如果要合并所有相同名称的列,只需在NATURAL JOIN中使用SELECT

有关详细信息,请参阅CREATE TABLE ... SELECT