我正在通过一个新的sql文件设计一个新的数据库。我正在使用Oracle SQL Developer并以sysdba身份登录。
我想知道SQL开发人员是否支持
或具有相同的命令connect scott/tiger;
提前谢谢。
修改
我正在尝试在引用Schema B表的Schema A表上创建一个外键。
显示的错误是
[Err] ORA-00942:表格或视图 不存在
因此,我希望以“Schema B”身份登录,授予SYS用户所有权限,再次以sys身份登录并创建关系。
希望这次我更清楚。
答案 0 :(得分:4)
我认为你需要打破并重新建立与数据库/服务的连接,以便在SQL Developer中以其他用户身份登录。
但是,如果您只想进入SCOTT
用户的名称空间(以便CREATE TABLE EMP...
执行CREATE TABLE SCOTT.EMP ...
,则可以发出
alter session set current_schema = SCOTT;
答案 1 :(得分:2)
作为用户SYS,您应该能够通过在对象名称前加上架构所有者来创建所需的关系,如前所述:
ALTR TABLE foo.t1 ADD FOREIGN KEY (col) REFERENCES bar.t2(ID);
也就是说,您还必须为用户foo授予REFERENCES权限才能建立这种关系:
GRANT REFERENCES ON bar.t2 TO foo;
用户SYS应该能够做到这一切。这是一个好的做法是另一个问题。
答案 2 :(得分:1)
还要记住,如果您尝试在不同架构中创建FK到表格,并且没有任何同义词,您必须完全限定名称:
例如,作为用户SCHEMA_A:
ALTER TABLE SCHEMA_A.TABLE_A
add CONSTRAINT fk_TABLE_B
FOREIGN KEY (COLUMN_A)
REFERENCES SCHEMA_B.TABLE_B(COLUMN_B);
您提到使用SYS用户 - 我希望您没有登录SYS进行正常开发......