在sqlite中将列更改为主键
我的应用程序中有一个表 创建表VisitDetails(VisitId整数、用户ID文本、VisitNumber 文本,作业ID整数,作业编号文本,状态ID整数,状态文本, SignatureRequired BOOL,StatusDate时间戳默认当前时间戳 ,StartDate时间戳默认当前时间戳,EndDate时间戳 默认当前时间戳(IsPPMJob BOOL)在sqlite中将列更改为主键,sqlite,ddl,Sqlite,Ddl,我的应用程序中有一个表 创建表VisitDetails(VisitId整数、用户ID文本、VisitNumber 文本,作业ID整数,作业编号文本,状态ID整数,状态文本, SignatureRequired BOOL,StatusDate时间戳默认当前时间戳 ,StartDate时间戳默认当前时间戳,EndDate时间戳 默认当前时间戳(IsPPMJob BOOL) 它工作得很好,但是现在我需要修改这个表,使已经存在的列“VisitId”成为主键。谁能帮帮我吗?它可以通过向表的VisitId列
它工作得很好,但是现在我需要修改这个表,使已经存在的列“VisitId”成为主键。谁能帮帮我吗?它可以通过向表的VisitId列添加唯一约束来工作,但我正在尝试一些有效的解决方案 一旦创建了表,就不能更改SQLite tables字段的主键, 可能的解决办法是
- 使用所需的主键创建新表
- 复制所有数据
- 放下旧桌子
这里是文档链接:感谢您的回复。那么我可以添加一个新列作为唯一列吗?其目的是停止添加重复条目,因此我将在该列中放置相同的访问id,但只是名称不同。所以我可以在已经存在的表中创建一个唯一的新列吗?您可以做一件事,在将任何记录插入表之前,首先检查数据库中是否存在visitId记录,它记录存在,然后更新记录,否则插入新记录。我已经设置了该检查,就像VisitId存在一样,然后删除旧数据并插入新条目,但有时它只是同时添加重复条目。所以从技术上讲,它应该删除第一个条目。您也可以在现有列上创建一个唯一的索引。正如@Shawn建议的那样,使用复合键,如VisitId和UserId(两列的组合)add As new column。