SQLite insert into插入数据时提示:PRIMARY KEY must be unique

一、问题描述

 

往SQLite 插入数据时,提示如下错误:

SQLite insert into插入数据时提示:PRIMARY KEY must be unique_第1张图片

PRIMARY KEY must be unique

什么情况主键不唯一。。怎么可能用的是自增主键,插入时用的是NULL,建表语句如下:

CREATE TABLE "tiezi" (
"id"  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"title"  TEXT(1024),
"content"  TEXT(1024),
"fid"  TEXT(256),
"tid"  TEXT(256),
"pid"  TEXT(256),
"uid"  TEXT(256),
"replies"  TEXT(2),
"fname"  TEXT(256),
"tname"  TEXT(256),
"pname"  TEXT(256),
"uname"  TEXT(256),
"dname"  TEXT(255),
"remarks"  TEXT(255),
"browse"  INTEGER,
"url"  TEXT(256),
"ctime"  TIMESTAMP(10) DEFAULT (datetime('now', 'localtime')),
"lid"  TEXT(256),
"lname"  TEXT(256),
"reply"  INTEGER,
"tag"  TEXT(256),
"tdate"  TEXT(256)
);

主键:

INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL

连接工具用的是Navicat Premium,在工具里手动输入没有问题,复制SQL insert into 语句进行插入就提示错误。。。。

 

二、解决方法

 

最后检查发现通过Navicat Premium右键复制为insert into语句时,多了一个ROWID字段。。。导致的,将其去掉就行了

 

SQLite insert into插入数据时提示:PRIMARY KEY must be unique_第2张图片

INSERT INTO tiezi ("id", "title", "content", "fid", "tid", "pid", "uid", "replies", "fname", "tname", "pname", "uname", "dname", "remarks", "browse", "url", "ctime", "lid", "lname", "reply", "tag", "tdate", "ROWID") VALUES (1, '这是个测试', 'ceshiceshiceshi', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'xxxxxx', '2019-02-19 23:11:13', 2, NULL, NULL, NULL, NULL, 1);

 

你可能感兴趣的:(SQLite)