当前位置:  开发笔记 > 数据库 > 正文

是否可以构造SQL查询以自动创建表(如果它尚不存在)?

如何解决《是否可以构造SQL查询以自动创建表(如果它尚不存在)?》经验,为你挑选了1个好方法。

我是一个完整的SQL新手,我正在尝试使用单个查询来完成以下(伪代码):

if (a table named "config_data" does not exist)
{ create a table named "config_data" }

if ("config_data" has no rows)
{ add a row to "config_data" with some default data }

return all rows in "config_data"

我该怎么办呢?可以用一个查询完成吗?我正在使用SQLite3,如果这有帮助的话.

到目前为止,我知道如何创建表,并将数据插入其中:

CREATE TABLE config_data (key TEXT NOT NULL, value TEXT);
INSERT INTO config_data VALUES ("key_1", "value_1");
INSERT INTO config_data VALUES ("key_2", "value_2");

以及如何检索所有行:

SELECT * FROM config_data;

这是我想到的奇特组合 :)



1> Dean Harding..:

要创建一个表(如果它尚不存在),您可以使用IF NOT EXISTS:

CREATE TABLE IF NOT EXISTS config_data (
    key TEXT NOT NULL, value TEXT,
    CONSTRAINT key_unique UNIQUE(key)
)

对于第二部分,您可以使用INSERT OR IGNORE(此处有更多信息)来插入值,假设您有一个唯一的约束,否则会通过插入值两次来违反该值(例如,您的key列可能有一个unqiue约束)):

INSERT OR IGNORE INTO config_data VALUES ("key_1", "def_value_1")

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有