鉴于SQLite中的以下表格:
hair_color
我正在尝试执行批量插入,仅对某些行使用INSERT INTO users (name, hair_color) VALUES
('Sean', 'Black'),
('Tess', DEFAULT)
的默认值。例如,在PostgreSQL或MySQL中,它可能看起来像:
DEFAULT
但是,SQLite不会在DEFAULT VALUES
之外的任何其他上下文中提供INSERT INTO users (name, hair_color) VALUES ('Sean', 'Black');
INSERT INTO users (name) VALUES ('Tess');
关键字。我知道我可以在两个查询中执行此操作
DEFAULT
但是,我无法想象SQLite没有提供某种机制来在单个查询中执行它。是否有与SQLite其他后端的$PATH
关键字相同的内容?
答案 0 :(得分:1)
SQLite是一个没有客户端/服务器通信开销的嵌入式数据库,因此数据库本身没有技术原因可以避免使用多个语句。
可以创建一个触发器(对于每个表),用特定值替换默认值。 但是,如果不知道表定义的细节,这是不可能的,并且无论如何,可以用单个语句插入的行数是有限的,因此最简单的解决方案是每行使用一个INSERT。