我下载了一个MySQL数据库,并使用这个PHP script将其解析为SQLite。
我在WPF上使用SQLite数据库,我可以使用此library进行一些操作。问题是我试图在一个带有自动增量字段的表中执行INSERT并且它不起作用,这是我的查询:
SQLiteConnection conn = new SQLiteConnection("Data Source=test.db");
conn.Open();
var command = conn.CreateCommand();
command.CommandText = "INSERT INTO tickets(created, user) values ('2015-12-12', 345)";
command.ExecuteNonQuery();
conn.Close();
以下是.db:
中的表票据CREATE TABLE "tickets" (
"id" int(11) NOT NULL ,
"user" int(11) NOT NULL,
"created" timestamp NOT NULL ,
PRIMARY KEY ("id")
)
在MySQL,我的查询工作正常,我的 id 列总是获得下一个自动增量值,但在SQLite中,我无法将此值转换为自动增量。当我运行应用程序时,它会崩溃并显示下一条消息:
其他信息:约束失败
NOT NULL约束失败:tickets.id
我知道该值不应为null,但它应该是自动递增的...这可能吗?
答案 0 :(得分:1)
您需要在创建表时将字段id
指定为自动增量;
选择look:
CREATE TABLE "tickets" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"user" int(11) NOT NULL,
"created" timestamp NOT NULL);
答案 1 :(得分:1)
您应该使用AUTO INCREMENT关键字标记您的列,如下所示:
CREATE TABLE tickets(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
USER INTEGER NOT NULL,
CREATED TIMESTAMP NOT NULL
);