虚拟表是什么

谁学逆向工程 2011-01-15 05:46:23
看到触发器,书上说 INSERT 触发器有一个 NEW 虚拟表
DELETE 触发器有一个 OLD 虚拟表
问:什么是虚拟表。和 CREATE TABLE 产生的表有什么区别


mysql> drop procedure s;
ERROR 1305 (42000): PROCEDURE yanglibiao.s does not exist
问:错误提示中的数字是什么意思? 1305是什么意思,42000 是什么意思。
补充说明一下,我是故意要产生错误的,就是想研究下提示中的数字的含义
...全文
478 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小小小周 2011-01-15
  • 打赏
  • 举报
回复
楼主真是好学的孩子,o(∩_∩)o

附录B:错误代码和消息
有楼主想要的错误信息的说明
· 错误:1305 SQLSTATE: 42000 (ER_SP_DOES_NOT_EXIST)

消息:%s %s不存在。
mysqldbd 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoyuanyuan2009 的回复:]
看到触发器,书上说 INSERT 触发器有一个 NEW 虚拟表
DELETE 触发器有一个 OLD 虚拟表
问:什么是虚拟表。和 CREATE TABLE 产生的表有什么区别


mysql> drop procedure s;
ERROR 1305 (42000): PROCEDURE yanglibiao.s does not exist
问:错误提示中的数字是什么意思? 1……
[/Quote]



ERROR 1305 (42000): PROCEDURE yanglibiao.s does not exist


其中1305是mysql定义的错误代码?表示库yanglibiao下面的存储过程对象s不存在;
而括号里面的42000则是标注下,这个跟标注sql规范里面的42000是一个错误类型。表示mysql是兼容标注sql规范的。
ACMAIN_CHM 2011-01-15
  • 打赏
  • 举报
回复
MYSQL并没有虚拟表这个说法

NEW,OLD只不过是个关键字,来指明触发器操作时的新值和原值。 参考一下MYSQL的手册吧。
iihero_ 2011-01-15
  • 打赏
  • 举报
回复
不知道是谁造出虚拟表的概念,new虚拟表,指的是待插入的新记录形成的“表”
delete中的OLD虚拟表指的是要删除的记录形成的“表”

至于ERROR 1305 (42000)
前边的1305是MySQL本身的error code,是mysql本身用的。而后边的42000是标准的SQL State error code,是兼容SQL标准的。
其含义就是: 
Error: 1305 SQLSTATE: 42000 (ER_SP_DOES_NOT_EXIST)
Message: %s %s does not exist
你在http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html
能看到所有的错误码及其含义对照表。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧