数据库版本 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
wangsongyan 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 直接命令行执行的
|
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 1
这语句是手打的吗?不是的话建议从头手打一遍,排除不可见符号导致的问题。
|
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
我最烦这种一行代码包含多个操作的做法,不易读,也不利于调试,而且,连自己也被坑了。
|