繁体   English   中英

SQL 外键 - 表或视图不存在

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM