我在最新版本的 XAMPP 上使用最新版本的 MariaDB。 PHPmyadmin 可用。
<小时/>假设我精心创建了一个包含大量字段的大表。我们称之为grand_table
。我选择了有用的字段名称,为不同类型的数据设置了适当的数据类型。
我想使用 grand_table
作为现成字段的来源,以便添加字段到 future 的表中。 (例如,如果我需要向现有表添加电子邮件字段,我不想考虑数据类型等,我只想从 grand_table
复制电子邮件字段。这样我就可以减少思考,也减少粗手指打字错误)。
假设我有另一个表,其中有一些字段。我们称之为 fresh_table
。
我只想仅将 20 个字段的结构(即字段名称、数据类型等)从 grand_table
复制到 fresh_table
。我不想复制任何数据(grand_table
中实际上没有任何数据)。
这两个表之间没有任何公共(public)字段。因此,没有通用的 id
字段(我认为这并不重要,因为我不关心在这里导入数据)。
我知道可以使用以下方法添加字段到现有表中:
ALTER TABLE `fresh_table` ADD field1 VARCHAR(60),
field2 VARCHAR(60), field2 VARCHAR(60),
etc... ;
我还知道可以使用现有表中的字段创建新表:
CREATE TABLE animals2 AS
SELECT animal -- only the columns you want
FROM animals
WHERE FALSE; -- and no data
<小时/>
我的问题是:是否可以将 ALTER
和 SELECT .. FROM
组合起来添加 字段(仅结构,无数据)从另一个现有表复制到现有表?如果没有,是否有其他方法可以实现相同的目标?
最佳答案
Alter
+ select ... from
对于现有表不起作用。解决方法如下:
create table large_table (id int, firstname varchar(20), lastname varchar(20), age int);
create table fresh_table (field1 int, field2 int);
create table new_table as select id, firstname, field1, field2 from large_table, fresh_table where 1=0;
select * from new_table;
这将为您提供 fresh_table 和 large_table 中的列。然后,您可以删除 fresh_table 并将 new_table 重命名为 fresh_table。
关于mysql - 将某些字段(仅结构)从另一个表复制到现有表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386289/