我对sqlite的语法图表印象非常深刻,并且想知道是否有人可以推荐可以让我创建类似图表的软件.
我接近语法错误AUTOINCREMENT.这个错误的原因是什么?
CREATE TABLE person (
id INTEGER NOT NULL AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE department (
id INTEGER NOT NULL AUTOINCREMENT,
name TEXT NOT NULL,
FOREIGN KEY (leader) REFERENCES person(id)
);
Run Code Online (Sandbox Code Playgroud) public Cursor set_datetime_next(Reminder r) {
String _newVal = "datetime('now', '+7 days')";
String[] args = { new Integer(r.getID()).toString() };
String query =
"UPDATE " + DBConst.TABLE
+ " SET " + DBConst.f_DATETIME_NEXT + "=" + _newVal
+ " WHERE " + DBConst.f_ID +"=?";
Log.i(TAG, query);
return db.rawQuery(query, args);
}
Run Code Online (Sandbox Code Playgroud)
我也试过传入datetime('now', '+7 days')作为绑定参数,这将无法工作,因为Android文档说:
这些值将绑定为字符串.
参考文献:
我创建了一个简单的表,其中包含人员的姓名和电子邮件ID.当我给出这样的创建查询时:
"create table contacts (name text not null, email text primary key not null);"
但这不起作用.我在运行时没有出现任何异常或错误,也没有主键正常工作.在使用SQLite浏览器浏览表时,我观察到只有四种数据类型:

是否可以仅对整数应用主键?如果我想要文本字段的主键是什么情况.谢谢.这是我使用的代码:
public class DBAdapter {
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_EMAIL = "email";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "MyDB";
private static final String DATABASE_TABLE = "contacts";
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_CREATE =
"create table contacts (_id integer …Run Code Online (Sandbox Code Playgroud) 我有一个包含多个字段的数据库
word_id — INTEGER PRIMARY_KEY
word — TEXT
...
Run Code Online (Sandbox Code Playgroud)
..和~150k行.
由于这是一本字典,我正在'search_string%'使用LIKE 搜索带掩码的单词.它曾经工作得很好,需要15ms才能找到匹配的行.该表具有字段的索引'word'.最近我修改了表(该表的一些字段超出了范围)并发生了一些事情 - 执行查询需要400ms,所以我理解它现在无法使用索引.使用=而不是like的直接查询显示10ms的结果.有人知道这里发生了什么吗?
我试着运行$ bundle exec rake db:reset并在控制台上找到以下内容
Couldn't drop db/development.sqlite3 : #<Errno::EACCES: Permission denied - c:/sample_app/db/development.sqlite3>
db/development.sqlite3 already exists
-- create_table("users", {:force=>true})
-> 0.3940s
-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true})
-> 0.1280s
-- initialize_schema_migrations_table()
-> 0.0010s
-- assume_migrated_upto_version(20120419034627, ["c:/sample_app/db/migrate
"])
-> 0.0040s
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
编辑我正在关注一个教程,它告诉我运行上面的命令来安全地删除数据库中的所有数据.我也在使用管理员帐户.
我试图在"测试资源管理器"中使用"全部运行"命令在运行测试一次之后发生以下错误...之后它将不再构建,直到重新启动visual studio
这是构建错误
进程无法访问文件'SQLite.Interop.dll',因为它正被另一个进程使用
这是代码
using System.Data.SQLite;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Sqlite
{
[TestClass]
public class Test_Sqlite_Locking
{
[TestMethod]
public void can_create_table()
{
using(var fact = new SQLiteFactory())
using (var conn = fact.CreateConnection())
{
conn.ConnectionString = "Data Source=:memory:;Version=3;New=True;";
conn.Open();
//conn.Close();
}
//SQLiteConnection.ClearAllPools();
//GC.Collect();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试过,关闭连接,调用ClearAllPools,GC.Collect,直接创建SQLiteConnection(而不是Factory)...仍然是同样的问题
如果您调试所有测试,这可以工作......但是当您运行测试时,它似乎将其锁定
我一直在努力让SQLite在Azure网站上工作.我已成功部署了所有内容,但我需要将其指向数据库的文件名.我已经看过创建Blob存储但我不确定如何将其转换为SQLite将接受的文件名.
我确信这已经完成,因为我可以看到与Azure上的SQLite相关的其他问题的引用.
我想为随机集实现分页
Select * from Animals ORDER BY random(SEED) LIMIT 100 OFFSET 50
Run Code Online (Sandbox Code Playgroud)
我试图将int设置为某个整数和某些断裂.不行
如何在sqlite中随机播种?
我在这里抓住机会,因为类似的问题已经存在 - 播种SQLite RANDOM().我只是没有得到PHP解决方案.
sqlite ×10
android ×2
azure ×1
c# ×1
cocoa ×1
date ×1
diagramming ×1
dispose ×1
ios ×1
objective-c ×1
php ×1
random ×1
ruby ×1
sql ×1
sql-like ×1
sql-update ×1
syntax ×1
unit-testing ×1