gpt4 book ai didi

mysql - 我正在寻找 MySQL 语法来在具有主键的表之间复制数据

转载 作者:行者123 更新时间:2023-11-29 07:53:49 26 4
gpt4 key购买 nike

我有两张表,一张名为 stock,另一张名为 io_card。

我正在尝试将数据从 io_card 表复制到 stock 表中。库存表还有一个名为“数量”的列。

"CREATE TABLE IF NOT EXISTS stock ("
Part_Number VARCHAR(80) PRIMARY KEY,
Description VARCHAR(64) NOT NULL,
Value VARCHAR(64) NOT NULL,
Tolerance INT NOT NULL,
Package VARCHAR(64) NOT NULL,
Quantity INT);"

io_card 表具有以下字段:

Part_Number VARCHAR(80) PRIMARY KEY,
Qty INT
Description VARCHAR(64)
Reference_Designator VARCHAR(64)
Value VARCHAR(64)
Tolerance INT
Package VARCHAR(64)
Manufacturer VARCHAR(128)
Supplier VARCHAR(128)
MOQ INT

当我运行此查询时(为了防止主键错误)

REPLACE INTO stock
(Part_Number, Description, Value, Tolerance, Package)
SELECT Part_Number, Description, Value, Tolerance, Package FROM io_card

它会删除库存表中名为“数量”的列中存储的库存值。

我必须复制整个表格,而不删除数量列中的现有库存供应。

我认为下面的语法可以工作,但事实并非如此。

INSERT INTO stock (Part_Number, Description, Value, Tolerance, Package)
SELECT Part_Number, Description, Value, Tolerance, Package FROM io_card
ON DUPLICATE KEY UPDATE
Part_Number, 'Part_Number'
Description, 'Description'
Value, 'Value'
Tolerance, 'Tolerance'
Package, 'Package'

我犯了一个简单的语法错误 - 如何从源表中获取要复制的实际值?显然这些陈述

Part_Number, 'Part_Number'
Description, 'Description'
Value, 'Value'
Tolerance, 'Tolerance'
Package, 'Package'

都是无意义的,因为引号内的字段(即“Part_Number”)不包含值,并且被解释为字符串。

注意:我明白了这一点。这是一个例子:

INSERT INTO 库存(零件号、描述、MyValue、公差、封装)

从 excel_io_card 中选择零件编号、描述、MyValue、公差、封装

重复 key 更新

零件编号 = excel_io_card.零件编号,

说明 = excel_io_card.Description,

MyValue = excel_io_card.MyValue,

容差= excel_io_card.Tolerance,

包= excel_io_card.Package;

最佳答案

您可以使用 VALUES 关键字来获取在未找到重复键的情况下将插入的值。然后可以在更新中使用该值:

INSERT INTO stock (Part_Number, Description, Value, Tolerance, Package)
SELECT Part_Number, Description, Value, Tolerance, Package FROM io_card
ON DUPLICATE KEY UPDATE
Part_Number = VALUES(Part_Number),
Description = VALUES(Description),
Value = VALUES(Value),
Tolerance = VALUES(Tolerance),
Package = VALUES(Package)

参见VALUES function

关于mysql - 我正在寻找 MySQL 语法来在具有主键的表之间复制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com