android – 改变表的独特字段

android – 改变表的独特字段,第1张

概述我有一个表,其中包含一个带有2个约束的唯一键.我想改变表格,以便我可以删除那里唯一字段中的一个约束. 我当前的数据库架构: CREATE TABLE testtable(test1 TEXT,test2 TEXT,test3 TEXT,test4 TEXT DEFAULT FALSE,UNIQUE(test1,test2)) 我已经在这个表中填充了数据,并且不想在我的下一个版本中删除并重新创建此表 我有一个表,其中包含一个带有2个约束的唯一键.我想改变表格,以便我可以删除那里唯一字段中的一个约束.

我当前的数据库架构:

CREATE table testtable(test1 TEXT,test2 TEXT,test3 TEXT,test4 TEXT DEFAulT FALSE,UNIQUE(test1,test2))

我已经在这个表中填充了数据,并且不想在我的下一个版本中删除并重新创建此表.有没有办法改变表的独特字段.我没有为我的表设置约束.

我希望我的数据库架构在更新后像这样.

CREATE table testtable(test1 TEXT,UNIQUE(test1))

解决方法 在其他DBMS中,您将使用ALTER table DROP CONSTRAINT ….但是,sqlite仅支持ALTER table命令的REname table和ADD ColUMN变体( Source).

因此,我担心你必须创建一个新表:

CREATE table testtable2(   test1 TEXT,UNIQUE (test1));

然后将旧表中的数据插入到新表中:

INSERT INTO testtable2 SELECT * FROM testtable;

然后你可以删除旧表:

DROP table testtable;

最后将新表重命名为原始名称:

ALTER table testtable2 REname TO testtable;

更新:

请注意,您的新约束将不那么宽松.例如,如果原始表中包含以下行:

test1       test2       test3       test4     ----------  ----------  ----------  ----------a           a           100         1         a           b           200         2         a           c           300         3

然后INSERT INTO testtable2 SELECT * FROM testtable;会失败,因为test1不是唯一的:

sql error: column test1 is not unique
总结

以上是内存溢出为你收集整理的android – 改变表的独特字段全部内容,希望文章能够帮你解决android – 改变表的独特字段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存