gpt4 book ai didi

sqlite - 插入返回错误:(子选择返回6列-预期为1)

转载 作者:行者123 更新时间:2023-12-03 18:43:56 24 4
gpt4 key购买 nike

我有一个表SIGHTINGS(NAME,PERSON,LOCATION,SIGHTED),并且我正在尝试使用以下查询在该表中插入新行:

INSERT INTO SIGHTINGS (NAME, PERSON, LOCATION, SIGHTED)
VALUES ('Douglas dustymaiden', 'Person B', 'Double Mountain', '2005-11-28');


但它返回此错误:

[2017-12-04 17:08:18] [1] [SQLITE_ERROR] SQL error or missing database (sub-select returns 6 columns - expected 1)


我查找了sqlite插入 here的正确语法,据我所知,插入正确编写。有人可以告诉我为什么它引发此错误而不是执行插入操作吗?我正在使用DataGrip 2017,如果这有助于发现任何问题。

编辑:

这是我添加到数据库中的触发器。插入无需触发即可工作。

CREATE TRIGGER SightingLocationError
BEFORE INSERT ON SIGHTINGS
FOR EACH ROW
WHEN NEW.LOCATION NOT IN FEATURES
BEGIN
SELECT RAISE(ABORT, 'Error: Insert into the SIGHTINGS table references location that is not found in the database.');
END;

最佳答案

WHEN NEW.LOCATION NOT IN FEATURES


FEATURES表具有六列,因此数据库不知道应如何搜索位置值。

使用显式子查询返回要用于此的列:

WHEN NEW.LOCATION NOT IN (SELECT xxx FROM FEATURES)

关于sqlite - 插入返回错误:(子选择返回6列-预期为1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47642840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com