我有下表:
CREATE TABLE child(
id INTEGER PRIMARY KEY,
parent_id INTEGER,
description TEXT);
Run Code Online (Sandbox Code Playgroud)
如何添加外键约束parent_id?假设启用了外键.
大多数示例假设您正在创建表 - 我想将约束添加到现有表中.
在SQLite中,如何选择some_column为空的记录?
空计为NULL和"".
我有一个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查询时.
关于发生了什么的任何想法?
我需要将.sql或.csv文件转储到SQLite中(我使用的是SQLite3 API).我只找到了导入/加载表的文档,而不是整个数据库.现在,当我输入:
sqlite3prompt> .import FILENAME TABLE
Run Code Online (Sandbox Code Playgroud)
我得到一个语法错误,因为它期望一个表而不是整个数据库.
我有一个带有此列定义的sqlite(v3)表:
"timestamp" DATETIME DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
此数据库所在的服务器位于CST时区.当我在不包含timestamp列的情况下插入到我的表中时,sqlite会自动使用GMT中的当前时间戳填充该字段,而不是CST.
有没有办法修改我的insert语句以强制存储的时间戳在CST中?另一方面,最好将它存储在GMT中(例如,如果数据库被移动到不同的时区),那么我是否可以修改我的选择SQL以将存储的时间戳转换为CST从表中提取它?
我将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数据库.我试图在表中插入值(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表,但现在我想在数据库中添加一个新表.
我更改了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)
但由于某种原因,没有创建新表.我究竟做错了什么?
我想存储图像SQLite DataBase.我试图用它来存储BLOB和String,在这两种情况下,它存储的图像,并可以获取,但是当我将其转换为Bitmap使用
BitmapFactory.decodeByteArray(...)它返回null.
我使用过这段代码,但它返回null
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
Run Code Online (Sandbox Code Playgroud) sqlite ×10
android ×3
sql ×3
database ×2
bitmap ×1
bytearray ×1
constraints ×1
ddl ×1
foreign-keys ×1
import ×1
ios ×1
iphone ×1
nsdata ×1
openssl ×1
permissions ×1
select ×1
sql-insert ×1
sqlite-shell ×1
timestamp ×1
timezone ×1