由于bash脚本通过变量将mariadb语句作为单行使用,因此在使用分隔符时遇到了问题。有没有办法在单行语句中使用分隔符?
while read -r tmp;
do
chomped_line=${tmp}
myOut+=("$chomped_line")
done < <(mysql -u myUn -pmyPw -h myHost -D myDb --batch --xml<<<${mySqlVar})
作为多行脚本工作的mariadb
delimiter |
select @myCount .... from table WHERE (myVal='valA' AND active=1); IF (@myCount > 0) THEN start transaction; .....; commit; END IF|
通过${mysqlvar}传递时不作为单行,在 delimiter |
```
delimiter | select @myCount .... from table WHERE (myVal='valA' AND active=1); IF (@myCount > 0) THEN start transaction; .....; commit; END IF|
2条答案
按热度按时间hgc7kmma1#
这个
DELIMITER
命令后面必须跟一个换行符。不能在随后使用分隔符的同一行上定义分隔符。你可能想用
mysql --delimiter ...
所以你不必使用DELIMITER
命令作为输入的一部分。小贴士:跑步可以学到很多东西
mysql --help
或者阅读它的文档。pwuypxnk2#
在mysql/mariadb中,
DELIMITER
仅用于构建存储例程。把它扔了。命令
mysql
非常乐意接受由;
.但是,我建议您使用sql创建一个文件并输入它: