我想对DB进行多次插入,但是mysql命令返回我:sh:-c:第0行:在未预料到的令牌“换行符”附近的语法错误。
有人知道这个错误意味着什么吗?
这是我的命令:
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true <shared/local_sql/3.sql>SQL文件示例:
DELETE FROM table_name WHERE num = '999999';
START TRANSACTION;
INSERT INTO table_name SET key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = 'val1', key1 = '', key1 = '', key1 = 'val1', num = '999999';
INSERT INTO table_name SET key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = 'val2', key1 = '', key1 = '', key1 = 'val2', num = '999999';
COMMIT;
UPDATE table_name SET num = '999998' WHERE num = '2';
UPDATE table_name SET num = '2' WHERE num = '999999';
DELETE FROM table_name WHERE num = '999998' OR num = '999999';发布于 2022-05-11 10:05:21
使用
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true shared/local_sql/3.sql您可能从一些示例中复制了字符<和>,其中使用这些字符来表示文件名(如mysql ... <sql_file> )的占位符。
必须将整个占位符<sql_file>替换为实际的文件名,即示例中的shared/local_sql/3.sql。
<和>字符被shell解释为标准输入或标准输出的重定向。
<shared/local_sql/3.sql指示shell从指定的文件重定向mysql命令的标准输入。这可能真的有用。
>需要在文件名之后指定输出应该重定向到的位置。因为没有文件名,只有行的末尾,所以您将得到错误消息。
发布于 2022-05-11 10:05:13
>是输出重定向算子,不设置任何输出文件。较短的测试用例:
$ >
sh: syntax error: unexpected newline如果你真的想把输出发送到一个文件中,你需要添加文件名,但我的印象是你认为<>是一种引号,但它们不是。
mysql -h 127.0.0.1 -D db_name -u username --password=pass --debug-info true < shared/local_sql/3.sqlhttps://stackoverflow.com/questions/72198750
复制相似问题