![](/img/trans.png)
[英]SQL Statement Question - How to retrieve records of a table where the primary key does not exist in another table as a foreign key
[英]SQL Foreign key -Table or view does not exist
Create Table Address (
HouseNo NUMBER,
Street VARCHAR2(30),
constraint address_id_nn PRIMARY KEY(HouseNo,Street,City),
city VARCHAR2(20) REFERENCES City(City),
zip NUMBER(6) CHECK(zip >=0),
state varchar2(25));
运行查询时,我收到消息“表或视图不存在”。有人能告诉我们为什么会这样吗?
删除REFERENCES City(City)
部分,它应该可以工作。
REFERENCES
子句始终引用与您当前创建的表不同的表。 请参阅https://www.w3schools.com/sql/sql_foreignkey.asp中的第一个示例
如果表 City 确实存在,那么您必须有必要的 Grants,至少 SELECT(我认为您在此表或视图上没有 SELECT 授予,您看不到它)和 REFERENCES(作为 Stick bit 建议给您)。 要测试该表是否存在,您可以在 SQL Developer 或 SQL*Plus 中录制:
SELECT count(*) FROM CITY;
如果您有此错误消息“表或视图不存在”,请让您的 DBA 允许您使用 SELECT 和参考(如 Sticky bit 所说)授予。 或在 City 的所有者(或模式)前加上HR .City 等前缀以获取 ID。
如果您没有任何错误消息。 因此,请确保表 CITY 包含 CITY 列。 要验证这一点,请录制并执行:
DESC city;
这将显示 City 表的所有列,并且您可以查看 city 列是否真的存在及其类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.