更改SQLite列类型并添加PK约束

更改SQLite列类型并添加PK约束,第1张

概述如何更改SQLite表中列的类型? 我有: CREATE TABLE table( id INTEGER, salt TEXT NOT NULL UNIQUE, step INT, insert_date TIMESTAMP ); 我想将salt的类型更改为仅将TEXT和id的类型更改为INTEGER PRIMARY KEY. 如何更改sqlite表中列的类型?

我有:

CREATE table table(        ID INTEGER,salt TEXT NOT NulL UNIQUE,step INT,insert_date TIMESTAMP    );

我想将salt的类型更改为仅将TEXT和ID的类型更改为INTEGER PRIMARY KEY.

以下是sqlite手册的一个摘录,讨论了ALTER table命令(参见URL: SQLite Alter Table):

sqlite supports a limited subset of
ALTER table. The ALTER table command
in sqlite allows the user to rename a
table or to add a new column to an
existing table. It is not possible to
rename a colum,remove a column,or
add or remove constraints from a
table.

在手动状态下,不可能修改列的类型或约束,例如将NulL转换为NOT NulL.但是,有一个工作

>将旧表复制到临时表中,
>创建一个根据需要定义的新表,
>将数据从临时表复制到新表.

在信用到期的信用额度上,我从对bitbucket.org的hakanw的django-email-usernames项目的问题#1的讨论中了解了这一点.

CREATE table test_table(    ID INTEGER,insert_date TIMESTAMP);ALTER table test_table REname TO test_table_temp;CREATE table test_table(    ID INTEGER PRIMARY KEY,salt TEXT,insert_date TIMESTAMP);INSERT INTO test_table SELECT * FROM test_table_temp;DROP table test_table_temp;

笔记

>我使用表名test_table,因为如果您尝试将表命名为表,sqlite将会生成错误.>如果您的数据不符合新的表约束,则INSERT INTO命令将失败.例如,如果原始的test_table包含两个具有相同整数的ID字段,则在执行“INSERT INTO test_table SELECT * FROM test_table_temp”时将收到“sql错误:PRIMARY KEY必须是唯一的”命令.>对于所有测试,我使用sqlite版本3.4.0作为Python 2.6.2的一部分运行在我的13“Unibody MacBook与Mac OS X 10.5.7.

总结

以上是内存溢出为你收集整理的更改SQLite列类型并添加PK约束全部内容,希望文章能够帮你解决更改SQLite列类型并添加PK约束所遇到的程序开发问题。

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

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

原文地址:https://www.54852.com/sjk/1160748.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存