Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLITE视图+触发器_Sql_Sqlite - Fatal编程技术网

SQLITE视图+触发器

SQLITE视图+触发器,sql,sqlite,Sql,Sqlite,对数据库来说,这是一个全新的概念——我试着在谷歌上搜索我做错了什么,但运气不好 这是一个简单的例子,没有说明我这么做的原因,但我尽可能地简化了。我的真实视图实际上将4个表连接在一起 我有一个名为“people”的表,其中包含以下列:person\u id、first\u name、last\u name 我有一个名为“phone\u book2”的视图,其SQL代码如下:选择person\u id作为pid,first\u name作为people中的fn 我有一个触发器,其SQL代码如下:创建

对数据库来说,这是一个全新的概念——我试着在谷歌上搜索我做错了什么,但运气不好

这是一个简单的例子,没有说明我这么做的原因,但我尽可能地简化了。我的真实视图实际上将4个表连接在一起

我有一个名为“people”的表,其中包含以下列:person\u id、first\u name、last\u name 我有一个名为“phone\u book2”的视图,其SQL代码如下:选择person\u id作为pid,first\u name作为people中的fn 我有一个触发器,其SQL代码如下:创建触发器测试,而不是在电话上更新\u book2开始更新人员设置第一个\u name=new.fn,其中人员\u id=pid;终止 然后我尝试使用以下命令进行更新:updatephone\u book2 set fn='crazy test',其中pid=2

我得到以下错误:没有这样的列:pid

我是不是在用触发器做他们不该做的事?我读到您可以在视图中使用它们,但可能是错误的?

您必须使用关键字NEW来限定pid:


请参阅。

新手错误。非常感谢你!
CREATE TRIGGER test 
INSTEAD OF UPDATE ON phone_book2 
BEGIN 
  UPDATE people 
  SET first_name = NEW.fn 
  WHERE person_id = NEW.pid; 
END