交叉编译go-sqlite3出现”undefined: SQLiteConn”
在windows下交叉编译go-sqlite3,如果只更改了GOARCH环境变量,编译时会出现:
undefined: SQLiteConn错误。
查了一下,是需要使能cgo,于是更改环境:
CGO_ENABLED=”0”
CGO_ENABLED=”1”
重新编译,出现下面错误:
gcc: error: unrecognized command line option ‘-marm’
使用go env查看环境变量,发现:
CC=”gcc”
CC=”arm-linux-gnueabihf-gcc”
重新编译后即可。
约束是在数据库表中的某列字段上强制执行的规则,用以限制插入表中的数据类型,确保数据库中的数据的准确性和可靠性约束分为列级约束和表级约束,前者适用于列,后者应用于整个表。
什么是约束
NOT NULL 约束
DEFAULT约束
UNIQUE约束
PRIMARY KEY约束
CHECK约束
Sqlite
3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对
sqlite
3 的研究列出来,以备忘记。
这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但
一、约束
Const
ra
int
s
在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点。 那么什么是约束呢?
我们在数据库
sqlite
3 插入数据的时候。返回
SQLITE
_
CONST
RA
INT
原因是:数据库的表的名字是纯数字。
大改这个原因太诡异了。创建的时候能够创建成功。插入数据的时候就失败,由于表名是纯数字。
附上错误的汉语解析
#define
SQLITE
_OK 0 /* 成功 | Successful result */
/* 错误码開始 */
#defin...
1.panic: Binary was compiled with 'CGO_ENABLED=0', go-
sqlite
3 requires cgo to work. This is a stub [recovered]
panic: Binary was compiled with 'CGO_ENABLED=0', go-
sqlite
3 requires cgo to work. This is a stub
交叉编译
的文件放到arm架构linux系统的平台上运行, 发现无法进行
转自:http://blog.sina.com.cn/s/blog_5f2e119b0101ibwn.html
SQLite
3 (http://www.
sqlite
.org)是一个非常强大的小型开源数据库软件,特别嵌入到一些软件中存储数据,当然,移植到嵌入式系统上也是非常有必要的。众所周知的Symbian,Android, IOS这几大移动平台都是使用的
sqlite
作数据存储,使用
SQLite
的厂商包括Adobe, Airbus, Apple, Dropbox, Mozilla, GE, Google,
sqlite
3中的约束如下:
CREATE TABLE CheckTable (rowId
int
eger primary key autoincrement, name text not null, address text default "China", userId text unique, age
int
eger check(age >= 0));
sqlite
3中的约束一
#define
SQLITE
_OK 0 /* 成功 | Successful result */
/* 错误码开始 */
#define
SQLITE
_ERROR 1 /* SQL错误 或 丢失数据库 | SQL error or missing database */
#define
SQLITE
_
INT
ERNAL 2 /* SQL...