sql查询使用子查询插入到

时间:2013-06-23 16:25:12

标签: sql postgresql

我正在尝试在表中添加一些值,其中包含1个值的Select过程。

INSERT INTO product(productname, productprice, productcategorynumber) 
VALUES ('12', '12', (SELECT productcategorynumber 
                     FROM product_category 
                     WHERE productcategoryname = 'DRINKS'));

我收到以下错误:

  

重复键值违反了唯一约束

thanx求助

2 个答案:

答案 0 :(得分:1)

无需values

INSERT INTO product(productname, productprice, productcategorynumber) 
SELECT '12', '12', productcategorynumber 
FROM product_category 
WHERE productcategoryname = 'DRINKS';

我认为这些并不是你想要的实际值,但它有望让你走上正轨。 (产品名称是否有唯一约束?如果是,则需要相应地调整查询。)

答案 1 :(得分:0)

其中一个字段存在约束:(productname,productprice,productcategorynumber)。 检查您的表以查看哪个字段对其具有唯一约束,然后您需要为该字段插入不同的值。

这是一个语句,它将列出PostgreSQL中的约束:

SELECT  constraint_name, constraint_type FROM information_schema.table_constraints
WHERE table_name = 'product'

您还应该能够使用以下命令查看此产品表的约束

\d product