标签: sqlite

如何将外键添加到现有SQLite表?

我有下表:

CREATE TABLE child( 
  id INTEGER PRIMARY KEY, 
  parent_id INTEGER, 
  description TEXT);
Run Code Online (Sandbox Code Playgroud)

如何添加外键约束parent_id?假设启用了外键.

大多数示例假设您正在创建表 - 我想将约束添加到现有表中.

sql sqlite ddl foreign-keys

118
推荐指数
6
解决办法
11万
查看次数

SQLite选择哪里空?

在SQLite中,如何选择some_column为空的记录?
空计为NULL和"".

sql sqlite select isnullorempty

118
推荐指数
2
解决办法
12万
查看次数

在插入期间SQLite错误'尝试编写只读数据库'?

我有一个SQLite数据库,我用于一个网站.问题是,当我尝试INSERT INTO它时,我会得到一个PDOException

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database
Run Code Online (Sandbox Code Playgroud)

我通过SSH连接到服务器并检查权限,数据库具有权限

-rw-rw-r--
Run Code Online (Sandbox Code Playgroud)

我不熟悉*nix权限,但我很确定这意味着

  • 不是目录
  • 所有者具有读/写权限(根据我的说法ls -l)
  • 组具有读/写权限
  • 其他人只有读取权限

我也看到了我知道使用该sqlite3程序的所有地方,并没有发现任何相关内容.

因为我不知道PDO试图打开数据库的权限,我做到了

chmod o+w supplies.db
Run Code Online (Sandbox Code Playgroud)

现在,我得到另一个PDOException:

SQLSTATE[HY000]: General error: 14 unable to open database file
Run Code Online (Sandbox Code Playgroud)

但它只发生在我打开数据库尝试执行INSERT查询时.

关于发生了什么的任何想法?

sqlite permissions

117
推荐指数
5
解决办法
14万
查看次数

SQLite中是否有Long类型?

我想创建一个包含列类型的表Long而不是Integer.可能吗?

sqlite android

117
推荐指数
5
解决办法
8万
查看次数

如何导入.sql或.csv文件加载到SQLite?

我需要将.sql.csv文件转储到SQLite中(我使用的是SQLite3 API).我只找到了导入/加载表的文档,而不是整个数据库.现在,当我输入:

sqlite3prompt> .import FILENAME TABLE 
Run Code Online (Sandbox Code Playgroud)

我得到一个语法错误,因为它期望一个表而不是整个数据库.

database sqlite import sqlite-shell

116
推荐指数
6
解决办法
17万
查看次数

Sqlite:CURRENT_TIMESTAMP是GMT,而不是机器的时区

我有一个带有此列定义的sqlite(v3)表:

"timestamp" DATETIME DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

此数据库所在的服务器位于CST时区.当我在不包含timestamp列的情况下插入到我的表中时,sqlite会自动使用GMT中的当前时间戳填充该字段,而不是CST.

有没有办法修改我的insert语句以强制存储的时间戳在CST中?另一方面,最好将它存储在GMT中(例如,如果数据库被移动到不同的时区),那么我是否可以修改我的选择SQL以将存储的时间戳转换为CST从表中提取它?

sql sqlite timezone timestamp

115
推荐指数
8
解决办法
16万
查看次数

将NSData转换为String?

我将openssl私钥EVP_PKEY存储为nsdata.为此,我使用下面的代码序列化为字节流

unsigned char *buf, *p;
int len;
len = i2d_PrivateKey(pkey, NULL);
buf = OPENSSL_malloc(len); 
p = buf;
i2d_PrivateKey(pkey, &p);
Run Code Online (Sandbox Code Playgroud)

其中pkey的类型为EVP_PKEY.然后我使用下面给出的行将缓冲区'p'中的字节存储为NSData

NSData *keydata = [NSData dataWithBytes:P length:len];
Run Code Online (Sandbox Code Playgroud)

现在我使用下面给出的代码将它转换为NSString但是当我将它打印到控制台时它会给出一些其他字符.

NSString *content =[ NSString stringWithCString:[keydata bytes] encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

基本上我想将EVP_PKEY存储到sqlite数据库中

我在正确的轨道上吗?谢谢.

sqlite iphone openssl nsdata ios

115
推荐指数
2
解决办法
17万
查看次数

SQLite中的"如果不存在则插入"语句

我有一个SQLite数据库.我试图在表中插入值(users_id,lessoninfo_id),前提bookmarks是它们之前不存在.

INSERT INTO bookmarks(users_id,lessoninfo_id) 
VALUES(
    (SELECT _id FROM Users WHERE User='"+$('#user_lesson').html()+"'),
        (SELECT _id FROM lessoninfo 
        WHERE Lesson="+lesson_no+" AND cast(starttime AS int)="+Math.floor(result_set.rows.item(markerCount-1).starttime)+") 
        WHERE NOT EXISTS (
            SELECT users_id,lessoninfo_id from bookmarks 
            WHERE users_id=(SELECT _id FROM Users 
            WHERE User='"+$('#user_lesson').html()+"') AND lessoninfo_id=(
                SELECT _id FROM lessoninfo
                WHERE Lesson="+lesson_no+")))
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误说:

db error附近的语法.

sqlite constraints sql-insert

115
推荐指数
4
解决办法
13万
查看次数

Android:升级数据库版本并添加新表

我已经为我的应用程序创建了sqlite表,但现在我想在数据库中添加一个新表.

我更改了DB版本如下

private static final int DATABASE_VERSION = 2;
Run Code Online (Sandbox Code Playgroud)

并添加字符串以创建表

private static final String DATABASE_CREATE_color = 
   "CREATE TABLE IF NOT EXISTS files(color text, incident_id text)";
Run Code Online (Sandbox Code Playgroud)

onCreate并且onUpgrade,如下:

@Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE_incident);
        database.execSQL(DATABASE_CREATE_audio);
        database.execSQL(DATABASE_CREATE_video);
        database.execSQL(DATABASE_CREATE_image);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //drop table and add new tables when version 2 released.
        db.execSQL(DATABASE_CREATE_color);

    }
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,没有创建新表.我究竟做错了什么?

database sqlite android

114
推荐指数
2
解决办法
9万
查看次数

如何将字节数组转换为Bitmap

我想存储图像SQLite DataBase.我试图用它来存储BLOBString,在这两种情况下,它存储的图像,并可以获取,但是当我将其转换为Bitmap使用 BitmapFactory.decodeByteArray(...)它返回null.

我使用过这段代码,但它返回null

Bitmap  bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
Run Code Online (Sandbox Code Playgroud)

sqlite android bytearray bitmap

112
推荐指数
2
解决办法
18万
查看次数