select 1 from information_schema.columns where table_name='xxx' and column_name='xxxxx';是可以查出表中是否有某个字段,由于这句语句是在 test.sql中写的,请问有什么办法判断他的返回值

 if ( 查询字段) then
  .....
else
   .....
end if

解决方案 »

  1.   

    select 1 into @x from information_schema.columns where table_name='xxx' and column_name='xxxxx';然后再对x做判断,这样可以吗?
      

  2.   

    MYSQL中不支持匿名块,过程语句只能写在存储过程中。 这种IF ELSE只能写在存储过程中。建议在脚本中实现。
      

  3.   

    USE testtbl;
    alter table Stream modify column SourceIP VARCHAR(65);if (Stream是否有unicast字段) then
    update Stream SET unicast=1 where ISNULL(unicast);
    end if
      

  4.   

    楼主楼上贴出的是MYSQL中的SQL语句, 在MYSQL中是无法实现的, 需要在外部脚本或者程序中实现。比如使用是WINDOWS操作系统,则可以在BAT脚本中去实现。
      

  5.   


    是的,我是想用bat去调用 能执行这个sql文件的exe,但是不知道这个sql文件怎么写,另外要调哪个exe
    如果实在不行可以用mysql-front去执行sql文件
      

  6.   

    bat 中你可以直接调用 mysql.exe 客户端程序。你可以参考一下MYSQL官方免费手册的第三章中的介绍。