zoukankan      html  css  js  c++  java
  • mysql 变量名称的使用不当的一个错误

         对于开发来说重要的是按照规范进行开发。

         昨天自己在进行开发测试的时候,编写mysql 的一个存储过程 ,代码是比较简单的

         就是根据名称查询对应的数据并返回

    DELIMITER //  

    CREATE PROCEDURE proc1(name int)  

        BEGIN 

        select * from table_name where name=name; 

        END 

        //  

    大家可能注意到了一个变量名称 name 因为我的数据库中的一个字段的名称也是name

    按照传统编程语言传递参数的特点查询应该是没有问题的,但是因为是sql ,结果我的查询时显示全部的数据,按照这样的话

    mysql 中的解释一样是这样的,在sql 中 因为name=name 永远为真 所以是全部的数据。

    一般在mysql 中用户的变量使用@字符开始。

    所以在开发的过程中还是按照规范开发会比较好,会减少很多看似怪异的显现。

     这种情况在oracel 中也是存在的,但是在sql serve 中就不会了,因为sql serve 的用户变量必须使用@ 符号。

     

    附oracle 的测试:

    对于oracle 中的sql 测试代码如下:

    declare
    name VARCHAR2(20);
    V_id VARCHAR2(20);
    begin
    name:='class13';
    select id into V_id from firstclass where name=name;
    dbms_output.put_line(V_id);
    end;

     

    提示的错误如下:

    原因与mysql 是类似的。

    修改一下名称即可。

     

  • 相关阅读:
    HDU 3833 YY's new problem ()
    从文件读入16进制数转化为10进制数再输出到文件中
    UESTC 1215 (思维题 旋转)
    HDU2067卡特兰数
    HDU2050离散数学折线分割平面
    cshell学习
    C++学习1
    QT学习1
    QT Creator常用快捷键
    Ubuntu14.04安装QT5.5
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3713537.html
Copyright © 2011-2022 走看看