如果我在 Android 上的 SQLite 中创建一个表:
create table [Table]
(
[Column] varchar(32)
)
Run Code Online (Sandbox Code Playgroud)
测试我的代码我可以存储一个长度超过这个长度的字符串,所以使用限制是没有用的?
内部发生什么事情了吗?
假设行数和列数超过数百个,如何在数据库中有效地表示下表(我认为创建包含 100 个字段的数据库不是一个好主意:))

我正在使用 Ruby on Rails/SQLite。
问题:
我在使用 python 将数据插入 SQlite 时遇到问题。目前我是 python 新手,所以这一定是初学者的错误。
错误:
操作错误:无法识别的令牌:“{”
我尝试过的:
我已经阅读了很多教程并尝试了很多选项,如下代码示例所示。但由于某种原因,我无法让它正常工作。
一些例子 :
cursor.execute("INSERT INTO wanted_movie (tmdb_id, name, year) VALUES ({tmdb_id}, {name}, {year})".format(
tmdb_id=str(data['id']), name=str(data['title']), year=str(data['release_date']).split('-')[0]))
cursor.execute("INSERT INTO wanted_movie (tmdb_id, name, year) VALUES ({tmdb_id}, {name}, {year})", {
"tmdb_id": str(data['id']), "name": str(data['title']), "year": str(data['release_date']).split('-')[0]})
conn.commit()
Run Code Online (Sandbox Code Playgroud)
问题 :
有人可以帮助我以 pythonic 方式使用 SQlite3 正确插入一行吗?
我有 2 个表TABLE1,TABLE2在 sqlite 数据库中。表2具有表1的一些记录。我想要的是从表 1 中选择所有记录,这些记录在表 2 中不存在。所以我编码:
String sq = "SELECT TABLE1.name, TABLE1.surname, TABLE1.id FROM TABLE1"
+ "LEFT JOIN TABLE1"
+ "ON TABLE1.id <> TABLE2.id";
Run Code Online (Sandbox Code Playgroud)
然而这个查询返回了一些我不明白的东西..哪个是正确的查询?
我想我今天可能已经讨论得太久了,我无法很好地理解这一点。我对 python 相当陌生,已经使用 Flask 大约一周了,这是我构建的第一个“真正的”应用程序,所以请温柔一点。
该应用程序允许内部客户(数据技术人员)输入他们的票号并登录表单。该表单已提交并暂时保存在 sqlite 数据库中,其中包含 ID、票号、登录名、创建时间和活动标志。
在另一个页面上,我有一个所谓的管理列表,它呈现当前在数据库中并标记为活动的所有票证。我用 jinja2 for 循环填充了它,并有一个内联按钮。
例如:
[ 1 ] [ ticket number ] [ login ] [ button ]
[ 2 ] [ ticket number ] [ login ] [ button ]
Run Code Online (Sandbox Code Playgroud)
按钮是我的问题。我非常不确定如何单击特定按钮导致针对数据库中的该条目执行操作。我希望将状态字段从整数 1 翻转为 0(true 和 false 也有效),因此这些基本上可以标记为完整,但仍可用于分析。
感谢您的阅读,这里有一些片段。
视图.py
@app.route('/', methods=['GET', 'POST'])
def index():
form = TicketForm()
ticket = Ticket.query.filter_by(status=1)
if request.method == 'GET':
return render_template('index.html', form=form, ticket=ticket)
elif request.method == 'POST':
if form.validate() == False:
flash('All fields are required, …Run Code Online (Sandbox Code Playgroud) 在转向 PDO 之前我使用了这段代码:
if (class_exists('SQLiteDatabase')) {
return 'jargon.db';
} else if (class_exists('SQLite3')) {
return 'jargon3.db';
} else {
throw new Exception('SQLite not installed');
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用 PDO 做同样的事情
我想使用 SQLite 在文件中存储一些元数据信息。该文件已经进行了 mmap。我想要做的是创建一个 SQLite DB,传入一个 char* 来告诉它在哪里创建 DB,而不是让它分配自己的 DB。这可以做到吗?内存数据库的 SQLite 文档只是说使用“:内存:”,并且数据库将在进程结束时被销毁,没有指示如何使用已经存在的数据或保留它。
如果没有,Linux 上有哪些解决方法?是否有“反向”mmap,以便我可以获取地址并将其映射到新文件?(那么 /foo 将是 /bar 的一部分的视图?)
我正在尝试在 CentOS 6 上设置 Apache(2.4,从源代码构建)+Django(1.8.12),但是当我尝试登录我的站点或创建用户或其他写入数据库的内容时,我收到错误:
尝试写入只读数据库
我已经尝试过:
无法打开数据库文件
我遵循了这个教程。
我的 httpd.conf (我添加的部分):
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /var/www/project/project/wsgi.py
WSGIPythonPath /var/www/project:/var/www/env/lib/python3.5/site-packages
<Directory /var/www/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
./manage createsuperuser工作正常,用户已添加到数据库。
为了提供媒体服务,我使用 Nginx(所有媒体和静态文件都能正确检索)。
UPD
完整回溯:
Environment:
Request Method: POST
Request URL: http://localhost:8080/accounts/login/
Django Version: 1.8.12
Python Version: 3.5.1
Installed Applications:
('bootstrap3',
'django_admin_bootstrapped',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'macros',
'django_ajax',
'ckeditor',
'accounts',
'main',
'tutor',
'public_testing',
'control_testing', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 .open() 函数在 QT 中打开一个 sqlite 数据库文件,如果文件不退出,.open() 不会返回 false,它只是在给定目录中创建一个新文件。我的代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:/sqlite/newDB.db");
if(!db.open()){
ui->test->setText("Fail");
}
else{
ui->test->setText("Success");
}
Run Code Online (Sandbox Code Playgroud)
如何让它返回 true 或 false ?
我正在 iOS 应用程序中使用 sqlite。我已成功创建登录和注册屏幕和表格。现在,我正在创建另一个表来保存数据。该表已创建,但当我运行查询插入值时,出现以下错误 ---“没有这样的表:proposalInfo”。有人可以帮我吗?