是否可以从两个或更多现有表中在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>
答案 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
。