我需要检查列是否存在,如果不存在则添加它。根据我的研究,sqlite 似乎不支持 IF 语句,应该使用 case 语句。
这是我到目前为止所拥有的:
SELECT CASE WHEN exists(select * from qaqc.columns where Name = "arg" and Object_ID = Object_ID("QAQC_Tasks")) = 0 THEN ALTER TABLE QAQC_Tasks ADD arg INT DEFAULT(0);
但我收到错误:Near“ALTER”:语法错误。
有任何想法吗?
你不能使用ALTER TABLE with
case.
您正在寻找获取表的列名::-
PRAGMA table_info(table-name);
检查本教程PRAGMA http://www.sqlite.org/pragma.html#pragma_table_info
此编译指示为指定表中的每一列返回一行。
结果集中的列包括列名、数据类型、是否
或不该列可以为NULL,并为该列的默认值。
对于不存在的列,结果集中的“pk”列为零
主键的一部分,是主键中列的索引
属于主键一部分的列的键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)