我一直在尝试通过在Learn SQL the Hard Way网站上进行练习来学习SQL。我在桌面上的文件夹中创建了一个名为ex1.sql的文件,并且我已将所有sqlite3内容放在PATH中。但是,我使用的是Windows Powershell,我无法执行命令:
sqlite3 ex1.db < ex1.sql
我在Powershell终端中收到此错误:
At line:1 char:16
+ sqlite3 ex1.db < ex1.sql
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupport
所以,我猜'&lt;'只能用于在Unix OS上重定向。我试图在powershell中找到一个等效的命令,但我还没找到。如果有人遇到此问题或知道如何将.sql文件重定向到.db,那就太棒了。
答案 0 :(得分:4)
你可以尝试:
get-content ext1.sql | sqllite3 ext1.db
本文对Powershell中的遗留重定向问题和各种解决方法进行了很好的讨论:
答案 1 :(得分:2)
我在Powershell上发现了Zed Shaw's Learn SQL the Hard Way以及此问题。他在 Unix 上使用的命令是
sqlite3 ex1.db < ex1.sql
Chad的回答非常适合Powershell。 Zed正在使用'<' redirection从.sql文件中读取CREATE语句,并使用该输入到.db文件。
在这个 Powershell 示例中,Chad正在读取.sql文件的内容,并将"piping"读入.db文件。
您也可以输入
gc ex1.sql | sqlite3 ex1.db
我希望这可以帮助任何在跟随Zed一起跟踪这篇文章的人,就像我一样!谢谢Zed和Chad!