我在一个文件user.sql中有以下SQL:
CREATE TABLE user
(
user_id INTEGER PRIMARY KEY,
username varchar(255),
password varchar(255)
);
Run Code Online (Sandbox Code Playgroud)
但是,执行以下命令时:
sqlite3 my.db < user.sql
Run Code Online (Sandbox Code Playgroud)
生成以下错误:
Error: near line 1: near ")": syntax error
Run Code Online (Sandbox Code Playgroud)
我希望保持SQL原样,因为文件将被检入源代码控制,并且将更加可维护和可读,就像现在一样.SQL可以跨越这样的多行,还是需要将它们全部放在同一行?
ber*_*nie 27
我意识到这不是你问题的直接答案.正如布莱恩所提到的,这可能是一个愚蠢的平台问题.
如果您通过Python与SQLite交互,您可能会避免大多数特定于平台的问题,并且您可以获得有趣的事情,例如datetime列:-)
像这样的东西应该工作正常:
import sqlite3
qry = open('create_table_user.sql', 'r').read()
conn = sqlite3.connect('/path/to/db')
c = conn.cursor()
c.execute(qry)
conn.commit()
c.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
Jan*_*sky 24
我有完全相同的问题.
然后我注意到,我的编辑器(Notepad ++)报告了行结尾的Macintosh格式.
将eols转换为Unix风格将脚本文件转换为sqlite3理解的格式.
归档时间: |
|
查看次数: |
62420 次 |
最近记录: |