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

标签 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 出现 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/

相关文章:

mysql - Golang mysql select * 语句只返回第一个值

mysql - 如何进行选择并能够回退到默认值?

php - 提交表单时,列计数与第 1 行的值计数不匹配

php - MySQL 'CREATE TABLE' 查询直接工作并通过 PHPMyAdmin 但不是通过 PHP

php - 连接函数的 SQL 问题

php - 我们可以使用单个 PHP 文件连接同一主机上的 mongodb 服务器和 mysql 服务器吗?

php - 如何使用 PHP 从 url 访问 mysql 表中的字段

php - 基于表本身和不同表的顺序表输出

mysql - 在 WHERE 子句中重用 Select 表达式的子查询

mysql - SQL 数字格式