您需要 part 以及 loc 列是自动递增的整数,或者有类型表 part 以及 loc 分别使用自动递增的整数?
选项1:
使用与旧表不同的名称创建新表。将旧表中的值Map为整数的条目插入到新表中。
INSERT INTO new_table_name (part, loc, quan, date, customer)
SELECT CASE
WHEN part = 'DEF' THEN 1
WHEN part = 'GHI' THEN 2
END
, CASE
WHEN loc = '...' THEN 1
WHEN loc = '...' THEN 2
WHEN loc = '...' THEN 3
END
, quan
, date
, customer
FROM original_table
选项2:
以下是零件的示例类型表:
如果你有一个类型表 part 以及 loc ,你可以这样做。。。
SELECT part.id
, loc.id
, quan
, date
, customer
FROM original_table orig INNER JOIN part prt
ON orig.part = prt.value
INNER JOIN loc
ON orig.loc = loc.value
2条答案
按热度按时间dced5bon1#
您需要
part
以及loc
列是自动递增的整数,或者有类型表part
以及loc
分别使用自动递增的整数?选项1:
使用与旧表不同的名称创建新表。将旧表中的值Map为整数的条目插入到新表中。
选项2:
以下是零件的示例类型表:
如果你有一个类型表
part
以及loc
,你可以这样做。。。据我所知,没有办法使用自动递增特性直接为您描述的表生成值。
6qfn3psc2#
创建新表并填充它,而不是试图更改现有的表,这是一种很好的做法(特别是,如果您的应用程序处于活动状态并且您正在处理客户数据)。
我建议您创建一个新的模式,如下所示:
架构图
可以使用现有表填充所有新表,并将所有主键分配给自动递增。
这有助于扩展应用程序并轻松维护它。