问题:
是否可以从两个或多个现有表在 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
出现 1 次或多次?
如果可能,那么同名列或两个主 ID 会发生什么情况?
编辑:我正在尝试使用现有表的架构来定义一个新表,不是试图用现有表的内容填充一个新表。
最佳答案
怎么样:
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
如果您想合并所有同名列,只需在 SELECT
中使用 NATURAL JOIN
。
参见 CREATE TABLE ... SELECT
获取更多信息。
关于mysql - 从两个或多个现有表创建新表 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278218/