2013-06-23 33 views
2

我想在表中添加一些值与选择过程1像这样的值。sql查询插入与子查询

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

我收到以下错误:

duplicate key value violates unique constraint

thanx的帮助

+0

哪些字段具有唯一约束? –

+0

你的语法应该可以正常工作。错误是关于你试图插入的值。也许产品名称是unqiue,并且已经有一行'productname ='12' – Andomar

+0

您是否正在使用oracle? –

回答

0

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

这里将列出约束你PostgreSQL中声明:

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

,你也应该能够使用下面的命令来查看限制这个产品表

\d product 
1

无需要values

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

我假设这些不是实际的盟友想要的价值,但它会希望把你放在正确的轨道上。 (产品名是否存在唯一约束?如果是,则需要相应调整查询。)