sqlite3 插入数据的时候,返回SQLITE_CONSTRAINT

原因是:数据库的表的名字是纯数字。

大改这个原因太诡异了,创建的时候可以创建成功。插入数据的时候就失败,因为表名是纯数字。

附上错误的汉语解析

#define SQLITE_OK           0   /* 成功 | Successful result */
/* 错误码开始 */
#define SQLITE_ERROR        1   /* SQL错误 或 丢失数据库 | SQL error or missing database */
#define SQLITE_INTERNAL     2   /* SQLite 内部逻辑错误 | Internal logic error in SQLite */
#define SQLITE_PERM         3   /* 拒绝访问 | Access permission denied */
#define SQLITE_ABORT        4   /* 回调函数请求取消操作 | Callback routine requested an abort */
#define SQLITE_BUSY         5   /* 数据库文件被锁定 | The database file is locked */
#define SQLITE_LOCKED       6   /* 数据库中的一个表被锁定 | A table in the database is locked */
#define SQLITE_NOMEM        7   /* 某次 malloc() 函数调用失败 | A malloc() failed */
#define SQLITE_READONLY     8   /* 尝试写入一个只读数据库 | Attempt to write a readonly database */
#define SQLITE_INTERRUPT    9   /* 操作被 sqlite3_interupt() 函数中断 | Operation terminated by sqlite3_interrupt() */
#define SQLITE_IOERR       10   /* 发生某些磁盘 I/O 错误 | Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT     11   /* 数据库磁盘映像不正确 | The database disk image is malformed */
#define SQLITE_NOTFOUND    12   /* sqlite3_file_control() 中出现未知操作数 | Unknown opcode in sqlite3_file_control() */
#define SQLITE_FULL        13   /* 因为数据库满导致插入失败 | Insertion failed because database is full */
#define SQLITE_CANTOPEN    14   /* 无法打开数据库文件 | Unable to open the database file */
#define SQLITE_PROTOCOL    15   /* 数据库锁定协议错误 | Database lock protocol error */
#define SQLITE_EMPTY       16   /* 数据库为空 | Database is empty */
#define SQLITE_SCHEMA      17   /* 数据结构发生改变 | The database schema changed */
#define SQLITE_TOOBIG      18   /* 字符串或二进制数据超过大小限制 | String or BLOB exceeds size limit */
#define SQLITE_CONSTRAINT  19   /* 由于约束违例而取消 | Abort due to constraint violation */
#define SQLITE_MISMATCH    20   /* 数据类型不匹配 | Data type mismatch */
#define SQLITE_MISUSE      21   /* 不正确的库使用 | Library used incorrectly */
#define SQLITE_NOLFS       22   /* 使用了操作系统不支持的功能 | Uses OS features not supported on host */
#define SQLITE_AUTH        23   /* 授权失败 | Authorization denied */
#define SQLITE_FORMAT      24   /* 附加数据库格式错误 | Auxiliary database format error */
#define SQLITE_RANGE       25   /* 传递给sqlite3_bind()的第二个参数超出范围 | 2nd parameter to sqlite3_bind out of range */
#define SQLITE_NOTADB      26   /* 被打开的文件不是一个数据库文件 | File opened that is not a database file */
#define SQLITE_ROW         100  /* sqlite3_step() 已经产生一个行结果 | sqlite3_step() has another row ready */
#define SQLITE_DONE        101  /* sqlite3_step() 完成执行操作 | sqlite3_step() has finished executing */
/* 错误码结束 */
女孩不哭(QQ:191035066)@2012-05-26 11:17:31 @ http://www.cnblogs.com/nbsofer
时间: 2024-12-28 06:14:47

sqlite3 插入数据的时候,返回SQLITE_CONSTRAINT的相关文章

FreeSql 插入数据,如何返回自增值

FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+..NetCore 2.1+.Xamarin 等支持 NetStandard 所有运行平台. 以 MIT 开源协议托管于 github:https://github.com/2881099/FreeSql FreeSql 插入数据的方式有多种,这篇文章教你用最优的方案做数据插入功能. static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseC

sqlserver插入数据后自动返回自增编号方法

以下是代码 比如这个表里面的id是主键,并且是自增的 insert into demo() output inserted.id  values('a','b'); 使用output inserted.(自增的编号的字段名) 这样就出来了.

mybatis 插入数据返回ID

hibernate中插入数据后会返回插入的数据的ID,mybatis要使用此功能需要在配置文件中显示声明两个属性即可: mybatis 插入数据返回ID,布布扣,bubuko.com

如何使用myBatis在数据库中插入数据并返回主键

在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列sequence, Nextval是获取自增的id <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType=&quo

Mybatis 插入数据后返回主键值

Oracle中获取刚刚插入记录的主键值: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">     <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">    SELECT U_US

MyBatis在Oracle中插入数据并返回主键的问题解决

引言:  在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle, Spring 3.2   SQL Snippet in XML Configuration: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType="

MyBatis插入数据之后返回插入记录的id

MyBatis插入数据的时候,返回该记录的id <insert id="insert" keyProperty="id" useGeneratedKeys="true"? parameterType="com.demo.domain.CountRateConfig">? insert into query_rate_config (code,partner_type,search_count, booking_co

mysql 插入数据后返回当前的自增ID方法

存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ->out userid int) ->begin ->set @sql=concat("insert into user(`username`,`password`) values(' ",username,"' ,' ",password,&qu

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN