我创建了一个最初未使用的列,但现在我们正在设置和获取值
我发现列名不正确
以及我想要更改列名称但想要保留设备中现有数据库的数据
有任何疑问吗检查并重命名sqlite 列
像这样的东西
Alter Table MyTable RENAME COLUMN IF EXISTS MyColumn TO MyColumn1;
现有数据库在用户端被用户丢弃印度使用
请帮我
Note:
1.我不想抛出异常
2.也不想重新创建表
我知道两种方式都能完成任务,但这不是最佳实践
我不会重新创造,而是以糟糕的名字生活
我认为可能有解决方案,就像我们可以检查这样的表希望我们可以检查列
SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;
OR
SELECT name FROM sqlite_master WHERE type='table' AND name = 'MyTable';
据我所知,没有办法按照你的要求去做。不过你可以使用
SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
检查该列是否存在。但是,由于您只需重命名该列一次,我不知道重新创建表时会出现什么问题。休闲确实NOT意味着数据丢失。
程序大致如下:
BEGIN TRANSACTION;
ALTER TABLE table RENAME TO tmp_table;
CREATE TABLE table (columnNames);
INSERT INTO table(columnNames) SELECT columnNamesWrong FROM tmp_table;
DROP TABLE tmp_table_name;
COMMIT;
如果这太麻烦了,请使用tool http://sqlitebrowser.sourceforge.net/去做吧。
关于最佳实践部分,最佳实践是正确命名表。由于您通常围绕字段名称构建所有查询,因此重命名列意味着破坏这些查询。我不知道你在寻找什么,但SQLite手册 http://www.sqlite.org/lang_altertable.html states:
SQLite 支持 ALTER TABLE 的有限子集。修改表
SQLite 中的命令允许用户重命名表或添加新表
列到现有表。无法重命名列,
删除列,或者添加或删除表中的约束。
注意什么是NOT可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)