- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个前触发器,它可以防止数据更新到表中。为此,我使用了“SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This operation is not allowed.';”。同时还想把数据插入到另一个表中。但它阻止了插入数据。我的代码如下。
CREATE TRIGGER TRG_RESTRICT_UPDATE
BEFORE UPDATE ON AUDIT_DATA
FOR EACH ROW
BEGIN
INSERT INTO AUDIT_DATA_OTHER
(PRACTICE_GROUP_ID
,AUDIT_TYPE
,AUDIT_SUB_TYPE
,AUDIT_SOURCE
,EXTERNAL_SYSTEM_TYPE
,AUDIT_DATA
,FOUND_SET_AUDIT_DATA
,OWNER_TYPE
,OWNER_ID
,CUSTOMER_ID
,PATIENT_NUMBER
,PATIENT_FIRST_NAME
,PATIENT_LAST_NAME
,PATIENT_MIDDLE_NAME
,PATIENT_BIRTH_DATE
,AUDIT_INFO
,IP_ADDRESS
,WORKSTATION_NAME
,CREATE_BY
,CREATE_DATE
,CREATE_PROCESS
,USERNAME
,IS_EMERGENCY_MODE
,EMERGENCY_NOTES
,EMERGENCY_FIRST_NAME
,EMERGENCY_LAST_NAME
,ENCOUNTER_TYPE
,ENCOUNTER_DATE
,ENCRYPTED_AUDIT_DATA)
VALUES
(1
,'AttemptToModifyAuditRecord'
,'Update'
,'MAXIMEYES_APPLICATION'
,''
,NULL
,''
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,'SQL query which attempted to execute:Update'
,NULL
,NULL
,-1
,NOW()
,1
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL);
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This operation is not allowed.';
END $$
最佳答案
触发器中引发的异常有效地停止和回滚任何事务,因此它也会回滚到日志表的插入——前提是日志表也是事务性的。
作为MySQL documentation on triggers说:
The trigger cannot use statements that explicitly or implicitly begin or end a transaction, such as START TRANSACTION, COMMIT, or ROLLBACK
因此,您唯一真正的机会是使用非/事务日志表,例如 myisam 表,因为回滚不适用于该插入。
关于Mysql:SIGNAL SQLSTATE 阻止数据插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179893/
env file:环境文件: APP_ENV=localAPP_DEBUG=trueAPP_KEY= ...........DB_HOST=srv3.linuxisrael.co.ilDB_D
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我在这里有一个 plpgsql 函数来指示在 ANALYZE 期间是否引发了任何警告: CREATE OR REPLACE FUNCTION analyzeWarning() RETURNS inte
我创建了一个过程,如果输入等于 0,该过程将抛出 SQLException 并显示错误消息“dwa”。 CREATE PROCEDURE enter_the_dragon(test INT) BEGI
我在尝试通过 8443 门户连接到我的服务器时收到此错误: ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file
在插入投票之前,我需要检查每个用户的声誉数。因此,为了这个目的,我有一个像这样的TRIGGER: CREATE TRIGGER check_reputation BEFORE INSERT ON vo
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error oraccess violation: 1064 You have
MYSQL 在处理通过别名调用的表的子查询时触发 SQLSTATE[42S02] 错误 “更新 call_log AS c1 INNER JOIN call_log AS c2 ON c1.id =
我在 PostgreSQL (mixbest) 中有一个包含 73018 行的表。我要选择的字段是: sample integer m integer, pciv double prec
我刚刚收到此错误...请帮我解决这个错误! www.sp-power.com Error in file: "/home/sppower6/public_html/app/code/core/Mage
例如,我有产品[香蕉]和产品[橙色],我希望这两个产品在数据库中使用相同的图片。但是,当我尝试添加与第一个产品具有相同图片的第二个产品时,我收到此错误: SQLSTATE[23000]: Integr
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 7 年前。 编辑问题以包含 desired behavior, a specific problem
Closed. This question is off-topic。它当前不接受答案。
运行时: DELIMITER $$ CREATE TRIGGER tr_test BEFORE UPDATE ON test FOR EACH ROW BEGIN
我的代码大部分已经运行起来了。我似乎不断地一遍又一遍地犯同样的错误。我认为这是因为我在错误的地方放了逗号,但我不知道。谁能帮我看一下这段代码吗? setAttribute(PDO::ATTR_ERRM
我正在尝试获取我的 yii 应用程序的时间范围。 这是我的模型: public function timeRange($attribute, $params) { $criteria
prepare($sql); foreach($parameters as $name=>$value){ $query->bindValue($name,$value);
我有一个前触发器,它可以防止数据更新到表中。为此,我使用了“SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This operation is not allo
您好,我在 SQL 查询中遇到错误,无法弄清楚问题出在哪里。这是到目前为止在 Barmar 的帮助下的查询。 $query = "SELECT c.*, count(s.curso_id) as c
我构建了 restful API 及其工作,但是当我尝试将参数传递给链接时,下面显示错误,尽管当我打印参数时结果是正确的! 详细信息 Type: PDOException Code: 42000 Me
我是一名优秀的程序员,十分优秀!