看到触发器,书上说 INSERT 触发器有一个 NEW 虚拟表
                  DELETE 触发器有一个 OLD 虚拟表
问:什么是虚拟表。和 CREATE TABLE 产生的表有什么区别
mysql> drop procedure s;
ERROR 1305 (42000): PROCEDURE yanglibiao.s does not exist
问:错误提示中的数字是什么意思? 1305是什么意思,42000 是什么意思。
补充说明一下,我是故意要产生错误的,就是想研究下提示中的数字的含义

解决方案 »

  1.   

    不知道是谁造出虚拟表的概念,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
    能看到所有的错误码及其含义对照表。
      

  2.   

    MYSQL并没有虚拟表这个说法NEW,OLD只不过是个关键字,来指明触发器操作时的新值和原值。 参考一下MYSQL的手册吧。
      

  3.   


    ERROR 1305 (42000): PROCEDURE yanglibiao.s does not exist
    其中1305是mysql定义的错误代码?表示库yanglibiao下面的存储过程对象s不存在;
    而括号里面的42000则是标注下,这个跟标注sql规范里面的42000是一个错误类型。表示mysql是兼容标注sql规范的。
      

  4.   

    楼主真是好学的孩子,o(∩_∩)o附录B:错误代码和消息
    有楼主想要的错误信息的说明
    ·         错误:1305 SQLSTATE: 42000 (ER_SP_DOES_NOT_EXIST) 消息:%s %s不存在。