我试图创建一个触发器:
create trigger afterupdate
after insert on friends
for each row
begin
dbms_output.put_line('hello world');
end afterupdate;
Run Code Online (Sandbox Code Playgroud)
但是出现以下错误:
"cannot create triggers on objects owned by SYS"
Run Code Online (Sandbox Code Playgroud)
鉴于错误,我假设您正在登录数据库SYS以创建表并编写代码.您不希望使用该SYS模式 - 您永远不应该在SYS模式中创建对象.您需要以其他用户身份登录数据库.通常,如果要构建一个全新的应用程序,则可以创建一个新用户来拥有新应用程序的所有对象.
例如,如果您正在构建Facebook克隆,并且希望将USERS表空间用于数据
CREATE USER facebook_appid
IDENTIFIED BY <<password>>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
GRANT CREATE SESSION,
CREATE TABLE,
CREATE TRIGGER
TO facebook_appid;
Run Code Online (Sandbox Code Playgroud)
然后,您将facebook_appid使用您指定的密码连接到数据库.
sqlplus facebook_appid/<<password>>@<<TNS alias>>
Run Code Online (Sandbox Code Playgroud)
完成后,您可以创建表和触发器.