【发布时间】:2015-07-30 04:19:51
【问题描述】:
我有一个表(“table1”),有 3 个列,分别称为 col1、col2 和 col3(每个都是 VARCHAR),有 4 个值,如下所示:
col1 col2 col3
datA1 datB1 datC1
datA2
我需要能够随时将数据添加到不影响其他列的任何列中。网上很流行的代码是这样的(比如说,我们只需要在 col2 和 col3 列中添加数据):
INSERT INTO table1 (col2, col3)
VALUES ('datB2', 'datC2');
但它会添加新行,如下所示:
col1 col2 col3
datA1 datB1 datC1
datA2
NULL datB2 datC2
我真正需要的是用新值填充“col1”列中以值“datA2”开头的行,并获得如下表:
col1 col2 col3
datA1 datB1 datC1
datA2 datB2 datC2
该表有 3 列,每列响应特定类型的值(例如:名称、颜色、大小)。我需要的只是一种可能性,可以随时在特定列中添加新值,并且如果之前有空闲单元格,则它们没有 Null 和新行。
【问题讨论】:
-
除非您的数据被非规范化,否则这没有任何意义。如果您只是像这样将值填充到每一列中,那么行的意义何在?
-
它闻起来像糟糕的数据库设计..
-
只有一个
key列和一个value列有什么问题? -
你还需要看
update -
修改现有行是 UPDATE 而不是 INSERT。垂直而不是水平。
标签: sql postgresql insert