我有一个文件,其中填充了如下所示的语句:
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'));'
答案 0 :(得分:3)
您必须使用MySQL源命令:
mysql> source /tmp/update_users.sql
使用\!
时,您改为调用Shell命令。 shell source
命令需要一个shell脚本,而不是sql文件。