【发布时间】:2018-08-01 23:41:24
【问题描述】:
我正在学习 Oracle,但遇到了问题。我有我的“聊天”表:
CREATE TABLE chat (
id_chat NUMBER,
id_user NUMBER,
start_chat DATE,
end_chat DATE
);
现在,我创建了一个触发器,如果旧的已经使用相同的 id_user 注册,它不允许我输入“聊天”。这是我的触发器:
create or replace trigger distChat
before insert on Chat
for each row
begin
if :new.id_user = :old.id_user then
Raise_Application_Error(-20099,'YOU CAN'T INSERT DUPLICATED DATA.');
end if;
end distChat;
但它仍然允许我使用相同的用户代码进入聊天。任何改进我的触发器的帮助或建议都不起作用。
谢谢。
【问题讨论】:
-
不,不,不,不,不!
-
okey 我知道,就像@thatjeffsmith 说的那样,我必须为我的 id_user 使用唯一索引,但如果我想用另一个 start_chat 和 end_chat 插入相同的 id_user,我必须创建触发器以确保日期不会位于 start_chat 和 end_chat 的第一个寄存器之间。
-
一个用户不能同时进行多个聊天?我每天都违反这条规则。此外,这完全是一个不同的问题。
-
@thatjeffsmith 这不是像 facebook 或 insta 这样的聊天,是的,我转换了另一个不同的问题,你能帮我一些想法吗?谢谢。
标签: oracle plsql oracle11g oracle-sqldeveloper