尝试从mysql命令行获取文件时收到语法错误

时间:2018-10-11 22:23:59

标签: mysql syntax

我有一个文件,其中填充了如下所示的语句:

update table set column1=NULL where column2 in (select id from users where user_id in ('user1','user2'));

如您所见,这是正确的语法。当我在mysql命令行上手动运行此命令时,它按预期工作。

但是,当我尝试获取文件源时,出现语法错误。有人看过这个问题吗?我正在寻找解决方案...

mysql> \! source /tmp/update_users.sql
/tmp/update_users.sql: line 2: syntax error near unexpected token `('
/tmp/update_users.sql: line 2: `(select id from users where user_id in ('user1','user2'));'

1 个答案:

答案 0 :(得分:3)

您必须使用MySQL源命令:

mysql> source /tmp/update_users.sql

使用\!时,您改为调用Shell命令。 shell source命令需要一个shell脚本,而不是sql文件。