0

问题:

是否可以从两个或多个现有表在 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;

我无法做出参考手册的正面或反面:

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

尾随是否(LIKE old_tbl_name)意味着 1 次或多次出现 LIKE old_tbl_name

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

编辑: 我正在尝试使用现有表的架构来定义一个新表,而不是尝试用现有表的内容填充一个新表。

4

1 回答 1

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 JOINSELECT.

有关CREATE TABLE ... SELECT更多信息,请参阅。

于 2012-04-23T09:57:50.683 回答