gpt4 book ai didi

java - 在 MySQL 中插入触发器之前,当从 Java 代码触发插入时会出现问题

转载 作者:行者123 更新时间:2023-11-30 00:45:20 25 4
gpt4 key购买 nike

DELIMITER $$
CREATE TRIGGER `classdost`.`tr_xyz_media`
BEFORE INSERT ON classdost.xyz_media
FOR EACH ROW
BEGIN
DECLARE t_id INT(20);

IF NEW.id < 5000000 THEN

INSERT INTO xyz_media_temp (insert_date) VALUES(CURDATE());
SELECT MAX(xyz_media_temp.id) INTO t_id FROM xyz_media_temp;

SET New.id = t_id;

END IF;
END$$

DELIMITER ;

我在 MySQL 中有这个触发器,当我在 PHPMyadmin 中触发任何插入查询时,它运行良好,但是当从 java 代码触发相同的插入时,它不会执行。我尝试使用 async: false 将所有请求更改为 Ajax 的代码,然后我发现早期的请求仍在后台运行,而我后来的请求给出了异常,因为尚未从数据库返回 ID。

可以采取什么措施来避免这个问题?

最佳答案

如果你说请求仍在后台运行,那么有可能你的表被锁定(MyISAM表),并且你无法修改它。

使用此查询查看表是否被锁定 -

SHOW OPEN TABLES FROM database_name;

此查询将向您显示打开的表,该表无法编辑(INSERT、UPDATE 等)。然后检查您的 Java 应用程序,找到锁定表的代码。

关于java - 在 MySQL 中插入触发器之前,当从 Java 代码触发插入时会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21423475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com