gpt4 book ai didi

mysql - MySQL 限制器说明

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

 Delimiter$$
CREATE TRIGGER after_finisher_update
AFTER UPDATE ON Booklist1
FOR EACH ROW
BEGIN
UPDATE Booklist1
SET Finished = 'yes'
WHERE Current_Page = Page_Count
END $$

我有一个包含多列的表格,形成一个书单(标题、作者...等)。我希望我的“已完成”列(默认为“否”)在 current_page = page_count 后切换为"is"。

  • 有人可以解释一下 delimiter 的含义和 delimiter$$ 的含义吗?
  • 当我以 END$$ 结束时(上面的代码中省略),我的终端无法正常工作。无论我输入什么,都会进入控制台并逐字返回,但什么也不做。有谁知道这个错误?我试着查了一下,但什么也没找到。其他条目也会发生这种情况。

谢谢。

最佳答案

Mysql使用;标记语句的结束。

当您定义过程、函数或触发器时,您将使用多个语句。

你需要告诉mysql函数/过程/触发语句的结尾在哪里。

如果输入分隔符//,我将使用//来指示语句的结束。

所以这个 block :

select now() ;
do sleep(1) ;
select now() ;

可以替换为:

delimiter //
select now() //
do sleep(1) //
select now() //
delimiter ;

使用 $$ 作为分隔符创建触发器的示例:

delimiter $$
create trigger trg_table_insert after insert on table
for each row
begin
insert into table_log ( dml_type , col_a,col_b , col_c ) value ( 'I', new.col_a,new.col_b,new.col_c );
end
$$
delimiter ;

AND 每次我将分隔符恢复为 ;

^^^^^^^ 你这样做是为了获得 mysql 的常规行为。

关于mysql - MySQL 限制器说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734010/

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