I have .sql files which have the following content:
#cat db.sql
create table server(name varchar(50),ipaddress varchar(15),id init)
create table client(name varchar(50),ipaddress varchar(15),id init)
Run Code Online (Sandbox Code Playgroud)
How do I import this file into SQLite so that these are created automatically?
我正在为我的iphone使用sqlite,我预计数据库架构可能会随着时间而改变.每次成功迁移时需要注意的问题,命名约定和注意事项是什么?
例如,我曾想过将一个版本附加到数据库名称(例如Database_v1).
在Python中使用SQLite3,我试图存储一段UTF-8 HTML代码的压缩版本.
代码如下所示:
...
c = connection.cursor()
c.execute('create table blah (cid integer primary key,html blob)')
...
c.execute('insert or ignore into blah values (?, ?)',(cid, zlib.compress(html)))
Run Code Online (Sandbox Code Playgroud)
在这一点上得到错误:
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
Run Code Online (Sandbox Code Playgroud)
如果我使用'text'而不是'blob'并且不压缩HTML片段,那么它可以很好地工作(尽管db很大).当我使用'blob'并通过Python zlib库压缩时,我收到上面的错误消息.我环顾四周,但找不到这个简单的答案.
我一直在使用SQLITE数据库进行开发,并在POSTGRESQL中生成.我刚用大量数据更新了我的本地数据库,需要将特定的表传输到生产数据库.
基于运行sqlite database .dump > /the/path/to/sqlite-dumpfile.sql,SQLITE以下列格式输出表转储:
BEGIN TRANSACTION;
CREATE TABLE "courses_school" ("id" integer PRIMARY KEY, "department_count" integer NOT NULL DEFAULT 0, "the_id" integer UNIQUE, "school_name" varchar(150), "slug" varchar(50));
INSERT INTO "courses_school" VALUES(1,168,213,'TEST Name A',NULL);
INSERT INTO "courses_school" VALUES(2,0,656,'TEST Name B',NULL);
....
COMMIT;
Run Code Online (Sandbox Code Playgroud)
如何将上述内容转换为可以导入生产服务器的POSTGRESQL兼容转储文件?
关于如何决定使用哪两个的任何好的经验法则?
并且,如果您接管一个Sqlite数据库,并且系统预计会"变得更大",如何决定是坚持使用还是转移到MySql?
有人能告诉我如何在最新版本的Python上安装sqlite3包吗?我使用Macbook,并在命令行上尝试:
pip install sqlite
Run Code Online (Sandbox Code Playgroud)
但会弹出一个错误.
通常,核心数据应用程序的sqlite存储文件位于
库>应用程序支持> iPhone模拟器> 7.1(或您使用的任何版本)>应用程序>(无论哪个文件夹包含您的应用程序)>文档
文件夹,但我在IOS 8中找不到它.我认为他们只会在iPhone模拟器文件夹中添加一个8.0文件夹,但它不存在.有没有人找到它?
我想避免在我的代码中进行如下的许多检查:
myObj.someStringField = rdr.IsDBNull(someOrdinal)
? string.Empty
: rdr.GetString(someOrdinal);
Run Code Online (Sandbox Code Playgroud)
我想我可以让我的查询通过执行以下操作来处理空值:
SELECT myField1, [isnull](myField1, '')
FROM myTable1
WHERE myField1 = someCondition
Run Code Online (Sandbox Code Playgroud)
我虽然使用SQLite,但似乎没有认识到这个isnull功能.我也试过其他数据库中的一些公认的那些等效(NVL(),IFNULL()和COALESCE()),但SQLite的似乎不认识任何人.
有没有人有任何建议或知道更好的方法来做到这一点.不幸的是,数据库没有所有字段的默认值.另外,LEFT JOIN在某些情况下我需要使用一些子句,其中返回的某些字段将为null,因为LEFT JOIN表中的匹配记录将不存在.
我已经为Android做了SQLite数据库编程,但我对Content-Provider一无所知,除了这个:"我已经提到了Android开发者页面,Android SDK解释了"Content-provider",因为它用于存储和检索数据."
但是之后,
任何例子或帮助!!
我想在sqlite中声明一个变量并在插入操作中使用它
就像在MS SQL中一样
declare @name as varchar(10)
set name = 'name'
select * from table where name = @name
Run Code Online (Sandbox Code Playgroud)
例如,我需要获取last_insert_row并在插入中使用它
我找到了一些关于绑定的东西,但我并没有完全理解它