使用标准程序将字段从一个 MySQL 数据库表复制到另一个表的许多问题

问题描述 投票:0回答:0
  • 我代表一个团队创建了一个仪表板,其中包含美国所有的消防行动、能力、可用资源等,每年都会为美国扑灭野火的当局提供信息。
  • 根据我们的联络,我们的仪表板应该有 3 个主要选项卡/部分,我正在尝试创建一个足以在专注于跑道数据的表格中创建所有数据可视化的数据表。
  • 使用 Table Data Import Wizard,我快速创建了一个
    runways
    数据库,其中包含 4 个表:
    airports
    airport_schedules
    runway
    firefighting_aircraft
    .
  • 现在,我需要做的就是创建一个包含 11 个字段的新表:
    • 1 来自
      airports
    • 1 来自
      airport_schedules
    • 9 来自
      firefighting_aircraft
      • 我想我会把每个剩余的人都添加到跑道桌上,让事情变得简单快捷。

我开始尝试使用 here 提供的模板这样做。跟随它之后,我运行了这个命令:

UPDATE
    runway
    INNER JOIN airports ON runway.Dep_Airport_ID = airports.Dep_Airport_ID
SET
    runway.Facility_Type = airports.Facility_Type;

但是,我不断收到这样的错误:

Error Code: 1205. Lock wait timeout exceeded;尝试重启交易

或者这个:

错误代码:2013。在查询 30.000 秒期间丢失与 MySQL 服务器的连接

所以,我调整了我的偏好,然后再次点击运行,但是我等了一个多小时才这样做,但我取消了操作,因为不可能花费那么长时间!

之后,我尝试以 3 种不同的方式使用本 教程 中提供的模板。 第一种方式:

ALTER TABLE runway ADD COLUMN Facility_Type TEXT;

INSERT INTO runway ( Facility_Type )
SELECT
    Facility_Type
FROM
    airports;

结果:

17:49:43  ALTER TABLE runway ADD COLUMN Facility_Type TEXT    0 row(s) affected Records: 0  Duplicates: 0  Warnings: 0    0.031 sec
17:50:02  INSERT INTO runway (Facility_Type) SELECT Facility_Type FROM airports   19928 row(s) affected Records: 19928  Duplicates: 0  Warnings: 0    0.391 sec

但是当我从跑道上运行一个选定的设施类型时,我会得到所有-

NULL
s。

第二种方式:

ALTER TABLE runway ADD COLUMN Facility_Type TEXT;

INSERT INTO runway (Facility_Type)
SELECT
    Facility_Type
FROM
    airports
WHERE
    runway.Dep_Airport_ID = airports.Dep_Airport_ID;

第三种方式:

INSERT INTO runway (Facility_Type)
SELECT Facility_Type FROM airports;

第四种方式:

INSERT INTO runway (Facility_Type)
SELECT
    Facility_Type
FROM
    airports
WHERE
    runway.Dep_Airport_ID = airports.Dep_Airport_ID;

然后,我回到原来的解决方案并开始使用以下变体修改它:

UPDATE
    runway
SET
    runway.Facility_Type = airports.Facility_Type

导致:

错误代码:1054。“

airports.Facility_Type
”中的未知列“
field list

然后:

UPDATE
    runway
SET
    runway.Facility_Type = airports.Facility_Type
WHERE
    runway.Dep_Airport_ID = airports.Dep_Airport_ID

结果是:

错误代码:1054。“where 子句”中的未知列“airports.Dep_Airport_ID”

我越来越迷糊了,现在是当地时间凌晨 4 点 13 分,所以我想我暂时先休息一下。

mysql mysql-workbench rdbms
© www.soinside.com 2019 - 2024. All rights reserved.