我已经看到了足够的答案,知道在添加之前您无法在SQLITE中轻松检查列。我试图在Node-Red中创建一个懒人的节点,在那里你将消息传递给查询的SQLITE。如果表不存在则添加表很容易。
msg.topic='create table IF NOT EXISTS fred (id PRIMARY KEY);'; node.send(msg);
我想到添加一个包含字段名称的表格很简单 - 如果字段名称不在表格中......那么添加字段。但是你不能一次添加多个字段 - 所以我不能这样做......
msg.topic='create table IF NOT EXISTS fred (id PRIMARY KEY, myfields TEXT);'; node.send(msg);
问题是我以后无法添加,在添加字段之前无法检查表格是否存在!
这就是我想要的
msg.topic='create table IF NOT EXISTS fred (id PRIMARY KEY, myfields TEXT);'; node.send(msg);
msg.topic='if not (select address from myfields) alter table fred add column address text';
我想不出任何方法可以做到这一点 - 任何人的想法(想法是节点红色节点会输入表格,字段和值,如果表格不存在则会创建,如果该字段不存在,则会在尝试添加值之前创建它。)
答案 0 :(得分:1)
您将无法在SQL本身中使ALTER TABLE成为条件。你需要从你的调用脚本中处理它 或者,只需尝试将列添加到表中并接受失败作为结果。假设表存在,您可能遇到的唯一失败原因是该列已存在。
如果您想要做一些更优雅的事情,可以提前check if the column exists,然后从您的调用应用程序有条件地运行SQL。