我在MySQL中有一个触发器,它在插入行时执行PHP文件,这是触发器:
AFTER INSERT ON \glpi_tickets \
FOR EACH ROW BEGIN\``
BEGIN
DECLARE result INT;
SET result = (select sys_exec('C:/xampp/php/php.exe C:/xampp/htdocs/lar/query.php'));
END
在PHP文件中,我使用以下查询查询最后一个ID:
SELECT MAX(\id\) FROM glpi_tickets;
但是我在刚刚插入的行之前获得了ID,即使触
我试图对用户表中的特定用户触发更新。基本上是有人试图更改该用户,然后我希望回滚执行的任何查询并禁用用户(使用SP),但如果不是该用户,则继续执行更新提交。
这是我创建的代码:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Users_Trigger_UPDATE]
ON [dbo].[Users]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @user_id as nvarchar(30);
DECLARE @action as nvarc
我正在建设一个“银行”,作为我正在选修的数据库课程的作业。我已经创建了一个存储函数,它接受几个IN变量,如帐户ID、客户ID和PIN编号,并对此进行检查以确定提交的数据是否有效。如果数据有效,则过程更新帐户余额以表示货币事务。然后“返回”提交的数据是否有效。以下是该过程的代码:
DELIMITER //
CREATE PROCEDURE retrieveMoney (
IN holder INT,
IN pin VARCHAR(4),
IN account INT,
IN amount FLOAT,
OUT success INT
)
BEGIN
我有TABLE_1,这是这些记录的父表,它在SCHEMA_1中,并从JAVA/Node.js应用程序填充到事务中。还可以在同一个SCHEMA_1上使用下面的触发器(SCHEMA_1.TRIGGER_CALL_SP_OF_SCHEMA_2),并根据Table_1事务调用另一个存储过程以填充到SCHEMA_2中的另一个TABLE_2。
触发器:
create or replace trigger SCHEMA_1.TRIGGER_CALL_SP_OF_SCHEMA_2
AFTER UPDATE OR INSERT OR DELETE ON SCHEMA_1.TABLE_1
REFERENC
我有一个运行在Sybase ASE数据库服务器上的T-SQL存储过程,它有时无法提交所有操作,即使它完成时没有异常。这里有一个粗略的例子来说明它的作用。
BEGIN TRANSACTION
UPDATE TABLE1
SET FIELD1 = @NEW_VALUE1
WHERE KEY1 = @KEY_VALUE1
IF @@error <> 0 OR @@rowcount <> 1 BEGIN
ROLLBACK
RETURN 1
END
UPDATE TABLE2
SET FIELD2 = @NEW_VALUE2
WHERE KEY2 = @KE
假设一个表具有一个验证触发器,该触发器强制执行某些业务逻辑:
TRG_MYTABLE_INSERT_UPDATE_VALIDATION
FOR INSERT, UPDATE on MYTABLE
以及将所有插入和更新写入另一个表的审计触发器。
TRG_MYTABLE_INSERT_UPDATE_AUDIT
FOR INSERT, UPDATE on MYTABLE
而且不能保证它们将按照特定的顺序执行,验证中的回滚会触发回滚对审计表的写吗?
是否所有触发器都在同一个事务中“幕后”登记?
我正在尝试使用Microsoft 2005在触发器中放置一个try-catch语句。
BEGIN TRANSACTION
BEGIN TRY
--Some More SQL
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF (XACT_STATE()) = -1
BEGIN
ROLLBACK TRANSACTION;
END;
END CATCH
问题是,我不希望触发器失败,如果有什么东西被试图捕获块捕获。目前,我正在收到错误“事务在触发器中结束。批处理已被中止。”如果事务失败。我怎样才能让扳机优雅地失效
今天,我面临着实体框架的奇怪问题。考虑下一课:
public partial class Entities
{
...
public void DocumentUpdateForSync(string userLogin, IEntrySync document)
{
var timeEntry = document as Domain.Documents.TimeEntry;
Database.BeginTransaction();
try
{
是否可以创建触发器来授予或撤销MySQL5.1中的用户权限?
我试过这个:
delimiter //
create trigger sup_tog
before update on members
for each row begin
if old.fname = "xyz" and new.status = "b"
then
revoke select, update on mkdb.* from xyz;
end if;
end//
我得到的错误消息是:
错误代码:1422年。在存储的函数或触发器中不允许显式或隐式提交。