gpt4 book ai didi

mysql - 处理 sql 错误(如果存在,如果约束),Perl

转载 作者:行者123 更新时间:2023-11-29 13:18:03 25 4
gpt4 key购买 nike

我在我的网站上使用 perl 和 mysql。

如果存在与“删除”相关的数据,是否有限制删除的机制?是的 - 外键约束。如果由于外键约束而未删除行,是否可以返回一些代码?有点像这样:

$id = $cgi->param("id");                          
$query="delete from `Class` where `id` = '$id'";
$sth = $dbh->prepare($query);
$sth->execute or die(print $sth->errstr);
if ($sth->errcode eq '777')
{
print 'error! there are 1 or more rows, connected with row you want to delete';
}
else
{
print 'ok! deleted';
}

与插入行相同,并且存在具有相同数据的行。当然可以在插入时创建触发器并尝试返回一些代码。请给我这样的触发器的例子,好吗?再说一遍:如何处理这个错误?

请帮忙!抱歉我的英语不太好:)

最佳答案

如果您想返回自己的成功/失败代码,那么您可以使用过程。创建一个过程

delimiter $$

CREATE PROCEDURE `deleteProcedure`(in Id INT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
select 0; -- number that you want to return on failure
ROLLBACK;
END;

START TRANSACTION;
-- put any number of statement, including delete, insert, update
delete from `Class` where `id` = Id;
COMMIT;
select 1; -- number that you want to return on success
END$$

从 Perl 脚本调用此过程,它将返回您放入过程中的值。

关于mysql - 处理 sql 错误(如果存在,如果约束),Perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220909/

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