SQL在现有表中插入一个新行,更改除一列之外的所有表

时间:2013-09-04 16:17:49

标签: sql

我有一个包含14列的表格。第一列是Part#。如果第10列中的数据不同,我需要插入一个新行并将其他数据添加到其他13列。

例如:

Part #  Description Lead Time   Price 1 Price 2 Price 3 Min. Buy    Date    ATA
1693    SHORTY PLUG     045  $-      $-      $4.25  100 110612  STC
2617    DOME PLUG            045     $-      $-      $0.75   100    111912  CIS
2617    DOME PLUG            045     $-      $-      $0.50  100 91012   STC
2617    DOME PLUG            045     $-      $-      $0.50  100 91012   STD
2646    PLUG (BLACK 045  $-      $-      $6.75  100 91012   STC
2646    PLUG (BLACK)    045  $-      $-      $6.00  100 91012   STD

键列是“ATA”列。如何添加部件#2646,其中ATA代码为“CIS”。 Part#是唯一保持不变的Column。我想将其他Rows保留在表中,只需添加另一行,其中Part#为2646,其余数据不同。

我对SQL并不十分熟练,并尝试过在互联网上找到的所有内容,但没有成功。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

听起来你只需要一个简单的插入语句。将值部分替换为要添加到数据库表的实际值。

Insert into YOUR_TABLE ([Part #], [Description], [Lead Time], [Price 1], [Price 2], [Price 3], [Min. Buy], [Date], [ATA])
Values (OLD_PART_NO, NEW_DESCRIPTION, NEW_LEAD_TIME, NEW_PRICE_1, NEW_PRICE_2, NEW_PRICE_3, NEW_MIN_BUY, NEW_DATE, NEW_ATA)

答案 1 :(得分:0)

如果您需要一个表格,您可以在其中拥有多个具有相同部件号的物品,但必须在第二列上有所不同,但仍希望防止重复,则需要编辑PRIMARY KEY以包含Part #ATA列如此:

ALTER TABLE [name]
DROP CONSTRAINT [pk_constraint_name] [or DROP PRIMARY KEY for MySQL]

ALTER TABLE [name]
ADD PRIMARY KEY([Part #],[ATA])

或者您可以将另一列作为主键,然后在这两列上定义UNIQUE INDEX,或者可能具有所需的最终结果。