在表中找不到主键列

时间:2017-01-04 21:28:54

标签: sql postgresql primary-key

我在表中添加了一个约束主键,查询成功运行。我面临的困境是我找不到表格中的主键列。

ALTER TABLE salesdata
ADD CONSTRAINT pk_salesdata PRIMARY KEY( "Address_of_New_Home","Sq_Ft","Build_Spec", "Realtor_Sale","Can","Actual_Sale_Date")

当我这样做时:

select * from salesdata

它显示之前的所有列,没有主键列(pk_salesdata)。

更令人费解的是:

select pk_salesdata from salesdata

数据库显示:

ERROR:  column "pk_salesdata" does not exist

我想将主键列添加到表中。我谦卑地请求数据库人员的帮助。

3 个答案:

答案 0 :(得分:0)

您创建了PRIMARY KEY,但是......

  1. 您从列“Address_of_New_Home”,“Sq_Ft”,“Build_Spec”,“Realtor_Sale”,“Can”,“Actual_Sale_Date”创建组合主键 - 这不是一个好主意

  2. 您的主键的别名为pk_salesdata,但它只是约束名

  3. 您没有创建新列

  4. 如果您想要新的合成主键列,则必须使用命令:

    ALTER TABLE salesdata ADD COLUMN mynewautoincrementid SERIAL PRIMARY KEY; 
    

答案 1 :(得分:0)

当您将主键添加到任何列时,您可以选择列名来显示数据时,表中的主要凯的约束

答案 2 :(得分:0)

您似乎已将要包含在主键中的列包装在双引号中。这不是这个命令的工作方式。删除引号重新运行命令,看看会发生什么。

ALTER TABLE salesdata
ADD CONSTRAINT pk_salesdata PRIMARY KEY( Address_of_New_Home,Sq_Ft,Build_Spec, Realtor_Sale,Can,Actual_Sale_Date)

通过SQL GUI添加主索引可能更容易。

这是用于创建主键的MS文档页面。

https://msdn.microsoft.com/en-us/library/ms189039.aspx

注意:由于您添加主键并不希望它作为列提供。