【问题标题】:How to copy a field from a table paste into another table with same properties如何将表格中的字段复制粘贴到具有相同属性的另一个表格中
【发布时间】:2011-09-11 04:49:43
【问题描述】:

我正在搜索这几个小时。

我只想将一些字段从一个表复制到另一个表中。在目标表中,我要复制的字段不存在。

就像,复制和粘贴。

例如。我要桌子

表A赞

`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`active` int(11) DEFAULT '0'

表 B 喜欢

`date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`alias` varchar(255) DEFAULT NULL,
`voters` int(11) DEFAULT NULL,
`level` int(11) NOT NULL DEFAULT '0',
`content` text

例如。我想用相同的结构和数据将表 B 中的“内容、级别、选民”复制到表 A。

我心里也是这么想的,但是怎么办呢?

Alter Table A Add content (same SCHEMA as TABLE B.content)
Alter Table A Add level (same SCHEMA as TABLE B.level)
Alter Table A Add level (voters SCHEMA as TABLE B.voters)

【问题讨论】:

    标签: mysql schema copy duplicates field


    【解决方案1】:
    INSERT INTO A (col1  , col2 , col3) 
    SELECT colB1, colB2,colB3 
    FROM B 
    

    它们必须是相同的数据类型和大小

    更新 如果表 A 不包含数据,您可以像这样创建它

    CREATE TABLE A LIKE B;
    

    使用LIKE根据另一个表的定义创建一个空表,包括原表中定义的任何列属性和索引:

    然后在上面做插入语句

    如果您想保留表 A 中的数据并从表 B 中添加一些列,您可以将这两个表合并到新表 X 中,然后删除表 A 并重命名 X

    CREATE TABLE X 
    SELECT * from emp;
    

    注意:如果表A包含许多记录,这将花费太多时间并且不是一个好的解决方案

    但是您的 select 语句将包含 join ,如果 A 和 B 之间存在关系,请告诉我写一个更具体的解决方案

    【讨论】:

    • 但是 col1, col2 , col3 在 A 上不存在。我问的是这个。
    • 但是表 A 已经存在。它是我的主表。要使用 Like 我必须先放下它。所以我丢失了数据。表 B 是一个临时表。它没有数据,它是空的。
    • no 之间没有任何关系。但我不明白如何合并:)
    • 创建表 X 选择 A.Name ,B.location FROM A ,B WHERE A.id = B.id
    • 注意你应该在你的情况下进行左连接,这样你就不会丢失表 A 中的任何数据,并且正如你所说的表 B 不包含任何数据,祝你好运
    猜你喜欢
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多