【发布时间】:2018-04-19 03:49:11
【问题描述】:
我正在使用继承,但最终遇到了问题。
如果我跑:
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 详细信息:表中不存在键 (property_id)=(86820) “房地产属性”。
ID 上的 estate_properties 也是 SERIAL。
注意:另一个表apartments 继承自estate_properties,并添加了86820。那会有什么不同吗?还有为什么我在父表中仍然有 ID,我可以从那里选择。
编辑: 仔细查看文档:
http://www.postgresql.org/docs/9.5/static/ddl-inherit.html
我想实现这个:
5.9.1。注意事项
- 指定另一个表的列 REFERENCES city(name) 将
允许另一个表包含城市名称,但不能包含大写名称。
这种情况没有好的解决方法。
EDIT2: 这是外键的声明:
CONSTRAINT property_images_property_id_fkey FOREIGN KEY (property_id)
REFERENCES estate_properties (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
【问题讨论】:
-
你能发布外键声明吗?
-
@schtever 我已经添加了它。我觉得很好。