我在表中添加了一个约束主键,查询成功运行。我面临的困境是我找不到表格中的主键列。
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
我想将主键列添加到表中。我谦卑地请求数据库人员的帮助。
答案 0 :(得分:0)
您创建了PRIMARY KEY
,但是......
您从列“Address_of_New_Home”,“Sq_Ft”,“Build_Spec”,“Realtor_Sale”,“Can”,“Actual_Sale_Date”创建组合主键 - 这不是一个好主意
您的主键的别名为pk_salesdata
,但它只是约束名
您没有创建新列
如果您想要新的合成主键列,则必须使用命令:
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
注意:由于您添加主键并不希望它作为列提供。