好吧,那么假设我有一个名为“COMPANY_PARAMETERS”的数据库,看起来像这样(前两列是键):
COMP_ID | PARAM_NAME | PARAM_VALUE
A | parameter 1| 10
A | sample_ind | Y
B | parameter 1| 20
B | sample_ind | N
我想为表中的每个公司ID插入一个新参数,让我们在表中输入参数2。我不知道哪个公司可以期待,因为任何客户都可以拥有他们想要的任何公司ID,因此一个客户可能有公司ID 1,2,3,4而另一个可能有A,B,C,D等。使用我们在更新数据库时存储在存储库中的一系列更新脚本。我已经四处询问,这是一个罕见的(唯一)表格,对每个客户来说都是独一无二的,但无论如何我还是想尝试。
我一直在使用数据库不到一年,我真的不知道从哪里开始这样的问题。我的猜测是使用select语句查找所有唯一的comp_Ids,然后为每一个插入一行。
非常感谢您的帮助。
-Asaf
答案 0 :(得分:1)
INSERT INTO COMPANY_PARAMETERS
(COMP_ID, PARAM_NAME)
SELECT DISTINCT cp.COMP_ID, 'parameter 2'
FROM COMPANY_PARAMETERS cp;
如果您想要格外小心,可以扩展查询以确保新参数不存在。
INSERT INTO COMPANY_PARAMETERS
(COMP_ID, PARAM_NAME)
SELECT DISTINCT cp.COMP_ID, 'parameter 2'
FROM COMPANY_PARAMETERS cp
WHERE NOT EXISTS(SELECT 1
FROM COMPANY_PARAMETERS cp2
WHERE cp2.COMP_ID = cp.COMP_ID
AND cp2.PARAM_NAME = 'parameter 2');