我正在使用继承,我最终遇到了问题。
如果我跑:
select count(*) from estate_properties where id = 86820;
我得到1。
但是当我尝试运行时:
insert into property_images (binary_image, name, property_id) values (16779, 'IMG_0096.jpg', 86820)
我明白了:
**********错误**********
错误:在表“property_images”上插入或更新违反了外语 键约束“property_images_property_id_fkey”SQL状态:23503 细节:表中没有Key(property_id)=(86820) “estate_properties”。
ID
上estate_properties
SERIAL
为apartments
。
注意:另一个表estate_properties
继承自CONSTRAINT property_images_property_id_fkey FOREIGN KEY (property_id)
REFERENCES estate_properties (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
,并添加了86820。这会有所作为吗?另外,为什么我仍然在父表中有ID,我可以从那里选择。
修改 仔细查看文档:
http://www.postgresql.org/docs/9.5/static/ddl-inherit.html
我想实现这个目标:
5.9.1。警告
- 指定另一个表的列REFERENCES cities(name)将为
允许另一个表包含城市名称,但不包含大写名称 这种情况没有好的解决方法。
EDIT2: 这是外键的声明:
var namespace = {
test: function() {
//sample 1
function nest(param) {
console.log('a '+ param);
}
//sample 2
this.nest = function(param) {
console.log('b '+ param);
}
}
}
答案 0 :(得分:1)
显然答案就在这里:
Foreign keys + table inheritance in PostgreSQL?
外键可以指向作为继承层次结构一部分的表,但它只能准确地找到该表中的行。不在任何父表或子表中。要查看外键看到的行,请执行SELECT * FROM ONLY thetable。 ONLY关键字意味着"忽略继承"那就是外键查找会做什么