
数据库版本 MariaDB-10.4.10 ,刚在执行一个批量替换某表字段内容的语句,但检查和调整了很久始终报错 1064,麻烦 V 友给看一下到底是哪里错了...
update base_info set main_url = replace(main_url,'v02-vid.xxxx.com','v01-vid.xxxx.myxxxx.com'); 报错如下
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'update base_info set main_url = replace(main_url,'v02-vid' at line 1 1 wa8n 2020-08-15 15:41:50 +08:00 via iPhone 命令行执行,还是代码调用? |
2 starwing 2020-08-15 15:55:26 +08:00 试试看是不是 main_url 这玩意儿不在表里,我拿了个错误的字段试了下报你的这个错。 |
3 daimaosix OP @wangsongyan 直接命令行执行的 |
4 daimaosix OP @starwing 在呢,我反复确认了好几遍,实在找不到问题了 |
5 hm20062006ok 2020-08-15 16:19:04 +08:00 加上 where 语句试试?可能是安全策略设置保守? |
6 akira 2020-08-15 16:22:54 +08:00 命令行?库名错了吧 |
7 daimaosix OP @hm20062006ok 没有做安全策略,这个就是一个普通的集群,没做太多策略,打算下个月换云数据库了 |
9 goodboy95 2020-08-15 17:06:00 +08:00 错误位置在整个语句之前,这就有点怪异。 总感觉是哪里有问题,导致传给数据库的语句不止这么一句。 |
10 goodboy95 2020-08-15 17:07:02 +08:00 这语句是手打的吗?不是的话建议从头手打一遍,排除不可见符号导致的问题。 |
11 zhangysh1995 2020-08-15 17:12:53 +08:00 看起来没毛病,可以到 MariaDB 社区或者 MySQL Slack 问一下。觉得可能是 SQL Parser 有 bug 。。。 |
12 daimaosix OP @goodboy95 我是先在 VScode 手动打的,确认 OK 了,复制到命令行执行的,我现在试试在命令行输入试试 |
13 laminux29 2020-08-15 18:48:15 +08:00 我最烦这种一行代码包含多个操作的做法,不易读,也不利于调试,而且,连自己也被坑了。 |