mysql - 为什么在 Workbench 中有效的 MySql 查询在 phpmyadmin 中返回语法错误?
问题描述
所以我在 2 个不同的数据库中作为 id_information 和 id_information_backup 有 2 个表作为 table1 和 table2。两个表都有以下列: (id bigint, name varchar, surname varchar) 我做了这个触发器,当用户在 table1 中输入姓名和姓氏时,它会计算它的 ascii 代码并进行一些计算并将其存储在“第二个表的名称”列,即“table2”。所有这些都在 Mysql 工作台中完成。当我将代码导入 phpmyadmin 时,它给了我太多的语法错误。我试图弄清楚我有什么语法错误,但我找不到。我在下面分享触发器。如果可以的话,请帮助我。我会很感激的。我想这是因为我使用的版本是 MySQL workbench 8.0 而我要导入的版本是 PHPmyadmin 4.9.4 。
delimiter $$
CREATE DEFINER = CURRENT_USER TRIGGER `id_information`.`table1_after_INSERT1` AFTER INSERT ON `table1` FOR EACH ROW
BEGIN
declare p , r , copy, result, result1 decimal(64,0);
declare name1, surnam varchar(15);
declare a int;
set name1 = new.name;
set surnam = new.surname;
set a= 100;
set result =0;
set copy = 0;
set result1 =0;
set p =0 ;
set r =0 ;
with recursive cte as (
select name1 as name1, left(name1, 1) as val, 1 as idx
union all
select name1, substring(name1, idx + 1, 1), idx + 1
from cte
where idx < char_length(name1)
)
select group_concat(ascii(val) + a order by idx separator '') ascii_word from cte into result;
with recursive ctee as (
select surnam as surnam, left(surnam, 1) as vall , 1 as idxx
union all
select surnam, substring(surnam, idxx+ 1, 1), idxx+ 1
from ctee
where idxx< char_length(surnam)
)
select group_concat(ascii(vall ) + a order by idxx separator '') ascii_word from ctee into result1;
select group_concat(result, result1) into copy;
insert into id_information_backup.table2 set table2.name = copy;
END$$
delimiter ;
解决方案
推荐阅读
- office365 - 确定与office365的连接是否有效,如果没有连接,则执行某些操作
- html - 导航栏没有使我的链接居中,我不知道如何使用 flexbox
- c# - 建立与 SQL GRAPH API ADO 的连接时发生与网络相关或特定于实例的错误
- python - 返回 None 而不是 False
- google-apps-script - Google 表单中的可填写表格,用于记录特定 Google 表格中的数据
- intellij-idea - 运行 Java 11.02 JavaFX .jar 应用程序会产生奇怪的输出
- c++ - 如何使用快速排序对二维双打向量进行排序?
- java - Netbeans 11.2 的 Build > Compiling 窗格中没有“Additional Compiler Options”
- javascript - Promise All 在第一次 Promise 后卡住
- angular7 - 当我设置延迟加载时,为什么我的 Angular 7 应用程序不会在根路由中呈现任何内容?